Spycraft handles this rather simply, using one system for player vs. house (luck-based) and a second for player vs. player (skill-based). I believe it came out to something like the following.
Luck Based:
Player chooses amount to bet.
Player chooses odds.
Player rolls d20, DC = House-d20 + PayoffMultiple*1.5
Ex: Player bets 100gp @ 4:1 payoff. House rolls 10 to set the DC of 16.
Player wins on d20=16 or better. Start over again for next round.
Skill Based (i.e. Poker)
Each player ante's up.
Each player rolls d20+TotalSenseMotive+TotalBluff
Winner takes all.
Further, if the character wants to cheat (at either game) you can have
them make a Sleight of Hand check (opposed by the spot of any observers).
Give the observers a bonus to their Spot equal to the amount of bonus
the cheater wants to apply to their gamble check.
Luck Based:
Player chooses amount to bet.
Player chooses odds.
Player rolls d20, DC = House-d20 + PayoffMultiple*1.5
Ex: Player bets 100gp @ 4:1 payoff. House rolls 10 to set the DC of 16.
Player wins on d20=16 or better. Start over again for next round.
Skill Based (i.e. Poker)
Each player ante's up.
Each player rolls d20+TotalSenseMotive+TotalBluff
Winner takes all.
Further, if the character wants to cheat (at either game) you can have
them make a Sleight of Hand check (opposed by the spot of any observers).
Give the observers a bonus to their Spot equal to the amount of bonus
the cheater wants to apply to their gamble check.