Free dice probability simulator. Roll 2d6 thousands of times and watch the sum distribution converge to the bell curve - see why 7 is most common.
This simulator does one thing deliberately: it rolls two six-sided dice, over and over, and draws where the totals land. Choose a run length — 10, 100, 1,000, 10,000 or 100,000 rolls — press Run, and a histogram of the sums 2 through 12 fills in live against the exact theoretical probabilities, while a second chart tracks the running average of every roll so far as it settles onto 7. It is not a roller for getting a result; it is a roller for seeing the shape that results have. If you need a number for a game or a specific NdM combination, the general dice roller is the page you want.
Skip setting that completes the run in one frame. The low end is for watching, the high end for getting to 100,000 rolls immediately.<iframe> snippet on your clipboard for putting the live simulator in a lesson page.Six readouts sit above the charts: rolls completed out of the target, the observed mean, the expected mean (7.000), the absolute deviation between them, the current streak and the longest streak. The streaks here count consecutive identical totals — roll 9, 9, 9 and the current streak reads 3.
The bars are the observed frequency of each sum; the dashed red outlines are the exact theoretical probability. Two dice give 36 equally likely face combinations, and the sums are not equally represented among them — there is one way to make 2 and six ways to make 7.
| Sum | Ways | Probability | Expected count in 1,000 rolls |
|---|---|---|---|
| 2 | 1 | 2.78% | 28 |
| 3 | 2 | 5.56% | 56 |
| 4 | 3 | 8.33% | 83 |
| 5 | 4 | 11.11% | 111 |
| 6 | 5 | 13.89% | 139 |
| 7 | 6 | 16.67% | 167 |
| 8 | 5 | 13.89% | 139 |
| 9 | 4 | 11.11% | 111 |
| 10 | 3 | 8.33% | 83 |
| 11 | 2 | 5.56% | 56 |
| 12 | 1 | 2.78% | 28 |
The ways column is the whole story: 1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1, summing to 36. That triangle is why 7 is the pivot of every dice game ever designed around two dice, and why 7 is six times more common than snake eyes rather than merely a bit more common. These are not estimates — the dashed overlay is computed by convolving the single-die distribution, so it is exact, not sampled.
The interesting part is how slowly the observed bars find that shape. Run 100 rolls and the histogram is visibly lumpy, often with 6 or 8 out-topping 7. Run 10,000 and it snaps into a clean triangle. The reason is in the sampling noise: the expected count of 7s in 1,000 rolls is 167, with a standard deviation of about 12, so anything from roughly 143 to 191 is routine. In 100 rolls the expected count is 16.7 with a standard deviation of about 3.7, which is a 22% relative wobble — more than enough to reorder the neighbouring bars.
The lower chart plots the average of every roll so far, with a dashed target line at the expected value. For 2d6 that value is exactly 7, and it comes straight from the arithmetic: one fair die averages (1+6)/2 = 3.5, and expectation adds, so two dice average 7. The general formula for N dice of M sides is N(M+1)/2 — which is why 3d6 averages 10.5 and 4d6 averages 14.
The line starts wild and flattens. The standard error of a mean over n rolls is the single-roll standard deviation divided by √n, and for 2d6 that single-roll standard deviation is 2.415.
| Rolls | Typical distance of the observed mean from 7 |
|---|---|
| 10 | about 0.76 |
| 100 | about 0.24 |
| 1,000 | about 0.076 |
| 10,000 | about 0.024 |
| 100,000 | about 0.008 |
Each hundredfold increase in rolls buys one decimal place of precision, no more. That is the practical face of the square-root law, and it is worth internalising before you ever try to prove a die is loaded by rolling it a few hundred times — the noise floor is larger than most biases people worry about.
Both produce a number in a similar band, and game designers pick between them for exactly one reason: the shape. This simulator is hardwired to 2d6, so this comparison is arithmetic rather than something you can toggle here — but it is the comparison that explains what the histogram is showing you.
| 1d12 | 2d6 | |
|---|---|---|
| Range | 1–12 | 2–12 |
| Average | 6.5 | 7 |
| Standard deviation | 3.45 | 2.42 |
| Shape | flat — every value 8.33% | triangular — peaked at 7 |
| Chance of the single most likely value | 8.33% | 16.67% (a 7) |
| Chance of landing in 6–8 | 25% | 44.4% |
| Chance of the maximum | 8.33% | 2.78% |
Two dice give up a third of the spread and concentrate nearly half the mass in three central values. Roll 1d12 and extreme results are as common as average ones; roll 2d6 and extremes become genuinely rare. A system wanting dramatic swings picks the flat die; a system wanting competence to show through picks the sum of several. Note also that summing dice cannot produce a 1 — the floor rises with the number of dice, which is the other reason 2d6 and 1d12 are not interchangeable despite sharing a ceiling.
Two dice give a triangle. Three give something already visibly bell-shaped: 216 combinations, with 10 and 11 the joint peaks at 27 ways each — 12.5% apiece — against a single way to roll 3 or 18, at under 0.5%. Add more dice and the shape gets smoother and relatively narrower, because the standard deviation of a sum of N dice grows as √N while the range grows as N. That is the central limit theorem in its most tangible form, and two dice are already enough to see it starting.
It also explains a common confusion. The histogram converging on the triangle is the law of large numbers — more samples, better estimate of a fixed distribution. The triangle being a triangle rather than flat is a different fact entirely, about what happens when you add random variables. The simulator shows both at once, which is exactly why it is a better teaching object than a table of probabilities.
Set Runs to 1k and look at the 12 bar after the run finishes. Expected count is 27.8, standard deviation about 5.2, so seeing anywhere from about 17 to 38 double sixes is unremarkable. People routinely report a streak as evidence of something broken. Nine boxcars in a row would be, at (1/36)⁹; but the streak counter here tracks repeats of any total, and a repeat of the previous sum happens on about one roll in nine, so two or three identical totals in a row are ordinary. Across a 100,000-roll run the longest-streak readout reaching five or six is the expected outcome, not a glitch.
Each trial rolls two dice in your browser using JavaScript's Math.random(), scaled with 1 + floor(random × 6) per die so all six faces are equally likely, and adds them. Nothing is sent anywhere: no server generates the rolls, no results are uploaded, and the run exists only in memory until you refresh. That is also why a 100,000-roll run can finish instantly on the Skip speed — there are no network round trips involved.
Said plainly: this is a pseudorandom generator, not a cryptographic one. The code does not use crypto.getRandomValues. For demonstrating distributions, teaching probability, or checking a game's odds it is more than good enough — 100,000 samples will not distinguish it from fair dice. For anything security-sensitive it is the wrong source.
Can I simulate 3d6 or 1d20 here? No — this page is fixed to 2d6 so the histogram always has a known exact target to compare against. Other combinations belong on the general dice roller.
Why does the histogram show percentages rather than counts? So the observed bars and the theoretical outlines share one scale regardless of how many rolls you have done. It also means the bars stop moving vertically as the run stabilises, which makes the convergence easier to see.
Are the dashed outlines simulated too? No. They are the exact computed probabilities for 2d6, which is why they never move during a run.
Does the speed setting change the results? No. Speed only controls how many rolls are performed per animation frame. A 10,000-roll run at 1× and the same run on Skip are statistically identical — one is just watchable.
Can I export the raw roll data? Not as numbers — the export produces a PNG of the two charts, suitable for a report or slide, with the totals visible in the readouts above.
Because there are more combinations that sum to 7 than to any other total. Six different pairs (1+6, 2+5, 3+4, 4+3, 5+2, 6+1) produce a 7, while only one pair produces a 2 or a 12. That gives 7 a 16.67% probability, the highest of any sum.
The sum of 2d6 follows a symmetric triangular distribution over the values 2 through 12, peaking at 7. It is not uniform: the middle sums are far more likely than the extremes, because more combinations produce them.
A single die is uniform (flat). Adding dice together makes the sum cluster in the middle: 2d6 forms a triangle, and more dice round it toward a bell curve. This shows the central limit theorem, which says sums of independent random variables approach a normal distribution.
A few dozen rolls look jagged and uneven. By 1,000 to 10,000 rolls the observed bars settle closely onto the theoretical triangle. This convergence of observed frequency toward true probability is the law of large numbers in action.
Yes. You can run the simulation live in class, adjust the number of rolls and the animation speed, export the chart as a PNG image, or copy an embed snippet to place the interactive simulator directly in a lesson, slide, or blog post.