Simulate thousands of dice rolls and compare the result with the exact probabilities, which the tool calculates rather than estimates. The clearest way to see why 2d6 clusters around 7 while a single d12 is flat.
Settings
Recent results
Generated locally in your browser β your settings and results never leave this page.
Adding dice changes the shape, not just the range
A single die is flat: every face equally likely. Add a second and the flatness disappears immediately. Two six-sided dice can total anything from 2 to 12, but 7 comes up six times as often as either extreme, because there are six ways to make it and only one way to make 2.
This is the single most important fact about dice pools, and it is not obvious from the range alone. Two ranges can look identical and behave completely differently: 3d6 and 1d16 both span roughly the same span, but the first clusters hard around 10 or 11 while the second is perfectly even.
Why game designers care
The choice between a flat die and a pool is a choice about how much the dice should matter. A flat d20 makes outcomes swingy β a skilled character fails often, an unskilled one succeeds often, and the modifier is a nudge rather than a decision.
A pool of several dice makes results predictable. With 3d6 the middle is so much more likely than the extremes that a modifier dominates the roll, and a competent character reliably beats an incompetent one. Neither is better; they produce different feelings at the table, and knowing which you want is most of the design work.
Seeing the distribution rather than reasoning about it is the fastest way to make that choice. A histogram of 3d6 explains the mechanic in a second.
Calculated, not estimated
The exact column is worked out by counting combinations, one die at a time. Start with the distribution for a single die, then for each additional die add every face to every total the pool could already produce. After all the dice are folded in, the count for each total divided by the number of possible outcomes is the true probability.
This matters because it gives the simulation something real to be measured against. Comparing one simulation with another only tells you the two runs differed; comparing against the exact answer tells you how far the run actually is from the truth.
Convergence is slower than people expect
Run a thousand trials and the shape is recognisable. Run ten thousand and the common results sit close to their true frequencies. The tails take longer β a result that occurs 0.5% of the time needs a great many trials before its observed frequency settles down.
The rate is worth internalising: the typical error shrinks with the square root of the number of trials, so quadrupling the run only halves the error. That is why serious simulation work uses very large numbers of trials, and why a few hundred rolls tells you rather less than it appears to.
What the leftover difference means
Even after a large run, the observed and exact columns disagree slightly. That gap is the point of the exercise. It is not measurement error or a flaw in the generator β it is what randomness does, and it is exactly the effect that makes people conclude their dice are cursed after an unlucky evening.
Seeing a fair simulation of ten thousand rolls still miss the true value by a visible amount is the clearest available demonstration that a run of bad luck needs no explanation.
Privacy
The simulation runs entirely in your browser. Nothing is uploaded, stored or logged.
Comparing two dice pools
The most useful thing to do here is run the same question twice with different dice and compare. Is 2d6 or 1d12 better for a mechanic that needs a total of ten or more? Both can reach it; the shapes are entirely different.
1d12 gives a flat 25% for ten or above. 2d6 gives about 17%, and the results cluster so hard around seven that high totals are genuinely uncommon. If the design wants a reliable middle with rare extremes, the pool is right; if it wants a flat chance, the single die is.
Seeing both distributions makes that choice obvious in a way that reasoning about averages never does, because the averages are similar and the behaviour is not.
How to use the Dice Probability Simulator
- Choose how many dice and how many sides each has.
- Set how many rolls to simulate.
- Run the simulation and compare the observed frequencies with the exact probabilities.
Frequently asked questions
What is the difference between the observed and exact columns?
Observed is what this simulation actually produced. Exact is the true probability, calculated rather than simulated. Comparing them shows how closely a finite run approaches the underlying answer β and how much it still wanders.
How are the exact probabilities worked out?
By counting combinations directly. The tool builds the distribution one die at a time, adding each new die to every total the previous ones could produce. That gives the true answer, not an estimate.
Why does 2d6 peak at 7?
Because there are more ways to make 7 than anything else β six combinations out of thirty-six, against one way each for 2 and 12. Sums of several dice always cluster in the middle, and the more dice you add the stronger the clustering.
How many rolls do I need for a good match?
A few thousand usually gets the shape right; the tails need more, because rare outcomes need many trials before their frequency settles. Doubling the trials roughly halves the typical error, so accuracy improves slowly.
Why do the observed numbers still differ after many rolls?
Because they always will. A simulation converges on the true probability without ever landing exactly on it, and the remaining gap is genuine randomness rather than a fault. That is the most useful thing the comparison teaches.
What can I use this for?
Understanding why dice pools behave as they do, checking a game design before playing it, teaching probability with something concrete, and settling arguments about whether a run of bad rolls was unusual.
Is the simulation itself fair?
Yes. Every die is an independent draw from your browser's cryptographic random source with rejection sampling, so no face is favoured. That is why the observed values track the exact ones as closely as they do.