Fair Dice: How We Prove Every Roll
Every online backgammon player eventually asks: "are the dice rigged — does this app cheat?" We don't ask you to take our word for it: every roll can be checked mathematically.
Play for freeNo sign-up, no download — right in your browser
Why people don't trust online dice
At a real board you see the dice thrown in front of you. Online, a program rolls them, and you usually have no way to check it. Hence the suspicions: "the computer is cheating", "new players get lucky dice", "there's always a double right before I lose".
How it works on NARDEON
- The server picks its secret first. Before the match starts, it sends your browser a fingerprint of its secret (a SHA-256 hash). The secret itself stays hidden, but it can't be changed without changing the fingerprint.
- You add your own randomness. Only then does your browser send its own random number. Your opponent does the same.
- The dice come from all the parts together. Every roll is derived mathematically from the server's secrets and both players' numbers. The server didn't know your number when it picked its secret, so it couldn't steer the rolls.
- The secret is revealed after the match. Your browser checks it against the fingerprint it received at the start and recomputes every roll in the match, including any re-rolls when deciding who goes first.
- The result is on your screen. If everything matches, the match result shows "Dice are fair".
This approach is known as "commit and reveal": a way to check randomness in places where players shouldn't have to trust the operator.
For the curious: the math in detail
The server holds a separate 32-byte secret for each of the two players, and each player gets the SHA-256 fingerprint of their own secret up front. Each player's browser then sends a 16-byte random number. The two secrets are combined into one key, and every single die is an HMAC-SHA256 of both random numbers plus a running counter.
From that output the game takes the first byte below 252 and computes (byte mod 6) + 1. Why 252? Because 252 = 42 × 6: each face from 1 to 6 maps to exactly 42 byte values. Bytes 252 to 255 are thrown away — otherwise ones through fours would come up very slightly more often than fives and sixes.
Rolls you never see are part of the list too, such as the re-roll when both players throw the same number to decide who starts. Your browser checks that the rolls shown to you appear in the revealed list in exactly that order. If anything doesn't add up, the match result shows "Dice verification failed" instead of "Dice are fair".
The check runs in every online match: matchmaking, a room with a friend, club tables and tournaments. Against the computer, your own browser rolls the dice, so there is nothing to verify.
Bad luck is not proof
A double comes up once every six rolls on average, and a specific combination such as 6-5 once every eighteen. Streaks are part of randomness, and the bad ones are the ones you remember. That is exactly why the check exists: instead of a feeling, you get a calculation. More on the odds: doubles in backgammon.
What else keeps the game honest
- The server checks every move: an illegal move is impossible, even if someone modifies the game in their own browser.
- The clock, game results and score are kept by the server alone.
- Engine assistance, collusion and playing against your own second account are banned by the site rules; suspicious matches get reviewed.
See for yourself — play a match against a real opponent and look for the badge after the game.
Play for freeNo sign-up, no download — right in your browser
FAQ
Can the site rig the dice?
Not without it showing. The server commits to its secret before it receives yours and can't change it mid-match, so it can't pick rolls to suit or hurt you — and after the match your browser checks every roll. The one remaining risk is an operator-controlled opponent, which is why suspicious matches are reviewed.
Can my opponent influence the dice?
No. The server rolls the dice, not your opponent's device. Your opponent, like you, only adds their own random part before the match starts.
Where do I see the check?
After every online match the game recomputes all the rolls on its own. If everything matches, you'll see "Dice are fair — verified in your browser" under the match result.
Why do I always get bad dice?
Almost everyone feels that way: bad rolls stick in the memory more than good ones. The check after each match guarantees something else: no roll was swapped.
Does the computer opponent get better dice?
No. The computer doesn't see or choose its rolls; it only decides how to play the dice it gets, just like you.
Updated: October 24, 2026