I’ve always been curious how you would know for a fact if an online game of chance was fair. Casinos have many of these games of chance, so I figured that is a good place to start looking. Many sites have statements of “provable fairness” but when you look into that, it gets rather complex for the average person. As soon as you provide a 10 page document explaining how your client and server seeds make the site obviously fair, you tend to lose people. I’m going to break it down simply AND show you why the process doesn’t prove anything.
Provable Fairness in Games of Chance
Explanation of Current State
The way that many casinos and other online sites ‘prove’ their fairness is through seeds on both client and server sides. Put simply, a password or key is generated by the casino then one is generate by your computer, and when you put that together, there is a unique and ‘unpredictable’ seed. For example, assume the casino makes the key ‘123’ and your computer makes the key ‘abc’. Now the seed (key) for the whole game’s outcome is 123abc.
That exact key corresponds with either a win or a loss. If that exact key is entered again, you will always get the same result. This is considered ‘fair’ because the casino theoretically does not know the key your computer made, and you do not know the casino’s. This would ensure that neither party can predict the final key and therefore the outcome of the game until the keys are shared (the game is played).
Flaws
There are a handful of flaws that inhibits true fairness in these games of chance.
Autopopulation
For user experience purposes, it doesn’t make sense for casinos to require players to enter a key every time they want to play a game or draw a hand of cards. Instead, a key is automatically generated for them as a starting point. Since few players understand the ‘fairness’ process, they likely never see or interpret the key. Since this key is created and available to the casino before the game is run, they CAN predict the outcome of the game.
Inflexibility Despite Regeneration
If you are aware of the seeding system that casinos use, you still are not out of the woods. Few sites let you edit the seed it self. Many let you ‘regenerate’ the seed, but this opens the opportunity for biased regeneration. Few sites allow full customization of the key and few players want to customize the key each time.
Server-Side Iteration
When all is said and done, the casino needs to process the request and calculate the outcome. Without this, they would be unable to pay the player. This opens yet another opportunity for bad actors. Once you send your seed/key to the casino, it enters a black box. You don’t really know what is happening behind the scenes in their code, nor should you. The issue is, once the key is forfeit, how do you know that the client’s seed is solidified? Nothing is stopping the casino from taking your key and testing it with various server keys until it finds a losing combo to return to you.
Caveats
Some casinos break the rules above and may even provide you the server side key (uneditable). With this, you can technically ensure your victory every time by following the process above and altering your key. It’s not that easy, however. If a casino is providing you the key, that is because they know you can’t determine the outcome of the game until after the game is complete. This lack of transparency puts the power in the casino’s hands and makes it nearly impossible to ensure fairness.
You Will Lose
Okay, maybe not you specifically, but in general, players should expect to lose in these games of chance. Not only are the odds against you on every game (due to the nature of games of chance), but there is no way to know that it is fair. This means that you should NOT play these online games of chance even if you are expecting the unlikely odds presented to you. Casinos can implement tools from various sites like Random.Org and gain accreditation from vendors like eCorga or GLI, but that is not enough. So how CAN you play these games of chance fairly?
A Fair Solution
Both the complexity and unfairness can be eliminated rather simply. The fact that this hasn’t been done yet (to my knowledge) shows a lack of desire to be fair and risk losing control as a casino/game of chance owner.
One Unbiased, Uninvolved Third Party
The idea is very simple. An unaffiliated organization create a blank ‘fairness’ website with one element. That element is a number. That number is hundreds of units long. Every second, the number changes and the previous numbers are recorded and displayed. Every play now relies on the next number to determine the outcome of the game. This ensures fairness in games.
Example – Coin Flip
Take a casino that offers a coin flip game. If you win, you make 1.98 times what you put in. If you lose, you lost your stake. This means a $100 bet would result in either -$100 or +$98. When you click the bet button, your $100 is taken and the current time is collected. Say it is 1:00 pm and 35 seconds. You must now wait one second for the new result of the unaffiliated fairness site. At 1:00 pm and 36 seconds the result is in and your game runs. Here are what some outcomes may look like:
Fairness Site # | Win/Loss | $ In/Out |
95006531386132… | Win | +$98 |
48217832233323… | Loss | -$100 |
27485666323199… | Loss | -$100 |
65126102020332… | Win | +$98 |
25084624386132… | Loss | -$100 |
Since the game only requires 50% odds for a coin flip, the casino can either review only the first to digits of the fairness site’s result, or ensure that it is over 50% of the highest possible value. Because neither the casino nor the player have any influence on the number, the outcome is completely fair (assuming the fairness site has no stake). To ensure the game is played fairly, the player can look as the second they entered the game and the resulting number that was recorded one second later on the fairness site.
Example – Black Jack
At any point in time there is a percentage associated with drawing a given card. Those odds can be applied to the same model above with a 1/52 chance of getting each card. These odds would update whenever a card is drawn. 1/52 is equivalent to 0.0192307692308, so that is the rate to determine which should be the first card drawn. For example:
Card | Correlated Number |
Ace of Spades | Anything < 00192307692308 |
Ace of Clubs | 00192307692308 to 00384615384616 |
Ace of Hearts | 00384615384617 to 00576923076924 |
Ace of Diamonds | 00576923076925 to 00769230769232 |
King of Spades | 00769230769233 to 00961538461540 |
This would allow a fair and random card selection from a deck. This allows for any number of fair card games to be played transparently.
Example – Monster Money

Model Variation
Whether you see it or not, the game above are starkly different. In one (coin flip), the game outcome is determined by the fairness site, in the other, each action is. These models are entirely different but both completely applicable and fair. Even the black jack game could be created and played in the first category.
Black Jack Rereviewed
If a casino announces a 48% chance to win the black jack game, they could approach this differently. Similar to the coin flip game, the casino could just run the system to check whether the 48% or 52% was hit, then provide an overlay with a guaranteed outcome. Say the 52% (loss) outcome was decided before the cards were drawn. Now the game has become simple: Generate a hand for the player that will always lose to the house. The black jack game becomes a simple overlay to display the outcome of the underlying odds. While this may not make the most sense for black jack, it is possible.
Monster Money Implemented
To see how this could work for another game, check out this mock up:
In my Monster Money game, you are given a random team of 5 monsters with varying levels of health. Every time you beat another team of 5 monsters, your health is reset. The longer you go, the more points you win.
This game is predetermined, no matter how good your starting line-up is, your enemies’ difficulty will adjust to ensure you win the proper amount. The game above has random outcomes depending on when you reload the page. Below you can find links to force different outcomes:
Estimated Wins | Generated Number | Link to Game |
0 | 0.40 | You will lose |
1 | 0.64439 | You will net 0 |
3 | 0.99439 | You will win some |
Max | 1 | You will win big |
This game is fair! The fairness site will determine how many wins the player will have, then the visual will create a scenario to match.
Quinsiderations
Fairness Site Profitability
For the fairness site to become profitable, the creator could place ads on the page. While casinos pulling that number will not trigger the ad impression, players checking the outcome will. This will be minimal profitability, but to get online platforms using your solution, it likely needs to start as a free service.
PvP
This fairness model has flaws when playing against other people. If you are playing other people with publicly generated numbers and mappings, someone else can figure out what has happened to you (what cards you have drawn).
Bucketed Wins/Losses
Assuming the same model is used for each game and each casino, a lot of wins would happen at once and a lot of losses too. In the grand scheme of things, this shouldn’t matter, but some organizations may prefer to avoid this. To remedy the situation, sites could randomize the order of their cards before the game is played. For example, the jack of spades might be card 3 of 52 in one game, but 10 of 52 in another. It is critical that this is shown to the player before the game starts so there is no risk of the server altering the mappings instantly when the number is generated.
Nature of Games of Chance
Remember, this only ensures fairness in games, not winning. Games of chances are pinned against you. If the games were generally profitable, the house would be out of business. All we can do with this model is ensure there is no cheating and the odds communicated are the odds provided.
Check out more posts with a demo or the overall see the overall project directory!
Leave a Reply