card based games: the card order is hashed prior to a game, and the hash is presented to the user
...
Now anyone can audit the table to ensure that the game is indeed fair, and since another table has been generated for the day, no one can cheat.
that's what I meant ("use pregenerated random values show the hashes of game states before players make decision"), but it won't probably work well for many card games, because:
if players play against each other and they have something to hide from each other (like in poker) then it is harder (since casino owner potentially knows the cards of other players and it gives him/her possibility to play against them).
Or am I misunderstanding something?
No, you understand correctly. The risk of a casino creating a bot that will play blackjack to soak all the good cards is possible.
For example: deck is pregenerated. The likely outcome of every hand for every player is already known (since most players will follow basic strategy). If the casino detects that one of the players is likely to get a blackjack, the casino can simply put a bot player on the table to soak up the face cards and change the outcome. This may be negated by having one player per table (easy to do online). However, there is no guarantee that all decks would be casino favorable even with published hashes. The only way around this is to allow a player to cut the deck. The cut deck + hash should be fairly acceptable. In any case, blackjack online is not very house-friendly since the players can easily note down every card and use all kinds of counting software for them. The only way a house will have an advantage is to reshuffle the deck after every hand.
Poker on the other hand is very very hard. Even if you can get a secure deck, the casino does know what cards any player is holding and it would give casino bots a huge advantage.
As others have said here, all other games can be worked out by publishing the hash first before every roll.