How We Roll

Last Updated: July 2026

Every dice roll on the play table, the High Roller table, and the Strategy Bot Arena is generated by a cryptographically secure random number generator. There is no house script, no rigged outcome, and no way for your bets to change what the dice do.

What Generates the Dice

The craps engine behind the play table, the High Roller table, and the Strategy Bot Arena does not use Math.random(). It uses the Web Crypto API, crypto.getRandomValues(), the same class of cryptographically secure randomness browsers use for security-sensitive work. Each roll pulls fresh random values and maps them to two dice, one through six.

Two smaller tools have not made the switch yet: the standalone strategy simulator and the Lab’s Monte Carlo backtests still draw dice from JavaScript’s standard Math.random(). That generator is statistically fine for aggregate simulations, but it is not cryptographic, and we plan to move both to the same Web Crypto generator.

function rollDice(): [number, number] {
  const buf = new Uint32Array(2)
  crypto.getRandomValues(buf)
  return [(buf[0] % 6) + 1, (buf[1] % 6) + 1]
}

That is the entire dice generator. Two dice, each equally likely to land on any value from one to six. One disclosure: because 2^32 is not evenly divisible by 6, the modulo mapping gives faces one through four a bias of about 4 parts in 2^32, roughly one in a billion, which is far too small to affect play. No seed we control, no memory of past rolls, no reaction to your bankroll or your bets.

The Odds Are Fixed by the Dice, Not by Us

Two six-sided dice produce 36 equally likely combinations. The chance of each total is set entirely by how many of those 36 combinations add up to it. This is the same distribution you get with any pair of fair physical dice.

TotalWays to RollProbability
21 / 362.78%
32 / 365.56%
43 / 368.33%
54 / 3611.11%
65 / 3613.89%
76 / 3616.67%
85 / 3613.89%
94 / 3611.11%
103 / 368.33%
112 / 365.56%
121 / 362.78%

Seven is the most common total, at 16.67%, because six of the 36 combinations add up to it. That is not a house trick. It is the geometry of two dice, and it is exactly why the game is built the way it is.

Your Play Does Not Influence the Roll

The dice generator takes no input from your session. It does not know:

  • How much you have bet, or on what.
  • Whether you are winning or losing.
  • How long you have been playing.
  • What you rolled last, or a hundred rolls ago.

Each roll is independent. Dice have no memory. A hot streak or a cold streak is variance, not the system reacting to you.

Verifiable and Tested

The randomness is only half of fairness. The other half is that bets resolve correctly and payouts match the true odds. We lock that down with a suite of over 180 deterministic engine tests. Each test feeds the engine a fixed pair of dice and asserts the exact resulting state and payout, so the math cannot silently drift.

You can read the fixtures yourself: engine test fixtures on GitHub. The same engine that runs those tests runs the play table and the Strategy Bot Arena.

“Why Do I Keep Rolling Sevens?”

Because seven is supposed to come up more than any other number. With a 16.67% chance on every roll, a seven is expected roughly once every six rolls on average. Over a short session, clusters of sevens, or long gaps without one, are completely normal.

It can feel targeted, especially right after you have money on the table. It is not. The generator cannot see your bets. What you are feeling is variance plus the fact that seven is the single most likely outcome on any given roll.

This Is a Simulator, Not a Casino

Craps-AI is a free simulation and educational platform. No real money is wagered, won, or lost, and all in-game currency is fictional. Fair randomness here is about honest learning, not payouts. For the math behind the bets and the real-world risks of gambling, read our Risk Warnings and Responsible Gambling pages.