Dice roller
Roll a d6, a d20, two d6 or percentile dice. Sums included.
Press a button and the dice roll. The dice roller covers the standard tabletop set — d4, d6, d8, d10, d12, d20 and d100 — rolls single dice or sets, and shows each result plus the total. Every roll is drawn from your browser cryptographic random source, on your device.
Runs entirely in your browser. Your text is never uploaded — open DevTools, Network tab, and you will see zero requests while you use this tool.
How to use it
- Press Roll d6 for a single six-sided die or Roll d20 for a twenty.
- Press Roll 2d6 for two dice with the total, or Roll d100 for a percentile roll.
- Read the individual results and the sum underneath.
What this tool does
It rolls the dice a tabletop game actually uses. Roll d6 gives one six-sided die, the board game standard. Roll d20 gives one twenty-sided die, which is the die almost every action in Dungeons and Dragons turns on. Roll 2d6 rolls two six-sided dice and shows both faces and the total, the way Monopoly, Catan and Warhammer need them. Roll d100 gives a percentile result from 1 to 100.
When more than one die is rolled you see each face separately and then the sum, because in most games the individual faces matter. Doubles move you differently in Monopoly, and a natural 20 on a d20 means something a total of 20 does not.
The full polyhedral set is d4, d6, d8, d10, d12, d20 and d100, and the underlying roller handles any of them and up to twenty dice at a time.
Dice notation, briefly
Rulebooks write dice as NdS: N dice with S sides each. 2d6 is two six-sided dice. 1d20 is one twenty-sided die. A modifier is added afterwards, so 3d6+2 means roll three six-sided dice, add them, then add two.
Percentile rolls are written d100 or d%. At the table this is normally two ten-sided dice, one marked in tens, giving 1 to 100 with two zeros read as 100. Here it is a single draw from 1 to 100, which has exactly the same distribution and saves the argument about what 00 and 0 means.
Advantage and disadvantage in fifth edition mean rolling 2d20 and taking the higher or the lower. Roll twice and pick — the tool gives you both numbers.
Examples
| Roll | Notation | Result looks like | Range |
|---|---|---|---|
| One six-sided die | 1d6 | 4 | 1 to 6, flat |
| Two six-sided dice | 2d6 | 3 + 5 = 8 | 2 to 12, peaked at 7 |
| One twenty-sided die | 1d20 | 17 | 1 to 20, flat |
| Percentile | d100 | 73 | 1 to 100, flat |
| Damage roll | 3d6 | 2 + 6 + 4 = 12 | 3 to 18, peaked at 10 and 11 |
The difference between the flat and peaked rows is the whole reason games use different dice. A d20 treats every outcome as equally likely, which makes single rolls swingy and dramatic. Two dice added together cluster in the middle: 7 comes up on six of the thirty-six combinations of 2d6, while 2 and 12 come up on one each. Designers pick 2d6 when they want reliable results and d20 when they want surprises.
Is the roll fair?
The roller draws from crypto.getRandomValues(), the browser cryptographic random source, rather than Math.random(). That matters less for feel than for the second step: values that would fall outside an exact multiple of the number of faces are rejected and redrawn instead of being squeezed in with a remainder.
Without that rejection step you get modulo bias. A source producing values from 0 to 4 294 967 295 does not divide evenly by 6, so the low faces would appear very slightly more often than the high ones. The effect is invisible in a game night and clearly measurable over a million rolls. Discarding the uneven tail costs a fraction of a millisecond and removes it completely.
A physical die is arguably worse: moulded pips remove material unevenly, so a cheap d6 is very slightly biased toward the six. Casino dice are machined flush and sharp-edged for exactly this reason.
What a digital roll cannot do is prove to somebody else that you did not reroll until you liked the number. For a game where that matters, roll on a shared screen or use physical dice in front of everybody.
When you need it
- Tabletop games with the dice missing. One d6 lost under the sofa should not end game night.
- Dungeons and Dragons and other role-playing games, especially d20 checks and d100 tables.
- Playing remotely, where a roll on a shared screen is easier to trust than one over a webcam.
- Teaching probability. Roll 2d6 repeatedly and watch the totals pile up around 7.
- Deciding between numbered options, when a die is the fastest way to choose one of six.
- Prototyping a game. Test whether a mechanic wants a flat die or a pair before you print anything.
Doing it without this tool
Real dice. Still the best option at a table, because everyone can see the result land.
Google. Typing roll a die into the search box gives a built-in roller.
Spreadsheet. =RANDBETWEEN(1,6) for one die, and add two cells for 2d6. Press F9 to roll again.
Python. random.randint(1,20), or sum(random.randint(1,6) for _ in range(3)) for 3d6.
Discord bots. Convenient in a play-by-post game, at the cost of sending every roll through somebody else server.
Privacy: rolls are generated on your device
No request is made when you press a button. The numbers come from your own browser, nothing is logged, no history is kept after the tab closes and no account is involved. The page keeps rolling with the network switched off, which is useful in a basement, on a train, or wherever the game happens to be.
Related tools
Frequently asked questions
The standard polyhedral set: d4, d6, d8, d10, d12, d20 and d100. The buttons cover the common cases, and the roller handles up to twenty dice at once.
Yes. It draws from the browser cryptographic random source and rejects values that would introduce modulo bias, so every face is equally likely.
Because six of the thirty-six possible combinations add up to 7, while only one gives 2 and one gives 12. Adding dice always clusters results in the middle.
Roll a d20 twice and take the higher number, or the lower for disadvantage. Both results are shown, so nothing is hidden.
Roll three six-sided dice, read the total the tool prints, then add 2 yourself. Modifiers are always applied after the sum, never to each die.
It produces the same range and the same flat distribution, in one draw. It avoids the usual table argument about how to read a 00 and a 0.
Yes, once the page has loaded. Nothing about a roll needs a connection.