99tools

Dice Roller

runs in your browser

Roll any dice in standard notation: 3d6+2, d20, 4d6kh3 for an ability score, advantage and disadvantage. Fair rolls, in your browser.

Add 3 dice of 6 and then add 2. That gives 5 to 20, averaging 12.5.

about this tool

Dice notation, which is smaller than it looks

3d6+2 is the whole language: how many dice, how many sides, and what to add. The count can be left off, so d20 is one twenty-sided die. Terms can be added together, so 2d6+1d4+3 rolls two six-sided dice, one four-sided die, and adds three. A term can be subtracted, so 1d8-1d4 is a real thing you can write.

Dice from d2 up to d1000 all work, which covers the polyhedral set and the percentile die, and a few that only exist in software.

Keeping and dropping

The part that trips people up is the suffix. 4d6kh3 rolls four dice and keeps the highest three, which is how a Dungeons & Dragons ability score is usually made. The other three are kl to keep the lowest, dh to drop the highest and dl to drop the lowest.

Advantage is 2d20kh1 and disadvantage is 2d20kl1, both on the buttons. The die that lost is shown struck through rather than removed, because seeing the roll you did not get is half the point of rolling with advantage.

A suffix that keeps every die or drops every die is refused rather than ignored. 4d6kh4 keeps all four, which changes nothing, and is almost always a typo for 4d6kh3.

Why the randomness is the product

A die is the one tool where being nearly right is worthless, so two things are done properly.

The source is crypto.getRandomValues, the same one the browser uses for keys, rather than Math.random, which browsers are free to implement however they like.

The face is then taken by rejection sampling rather than a remainder. This sounds like pedantry and is not. A 32-bit number is not a multiple of six, so turning one into a die face with value % 6 hands the low faces a few extra chances: across the byte range it is 43 outcomes for each of the first four faces against 42 for the last two. Taking the range properly means discarding the values in that short tail and drawing again, which costs an occasional extra draw and nothing else.

What it does not do

There is no saved history, no account and no dice tray shared between players. Nothing is stored on your device, which is the site's rule everywhere, so the last twelve rolls are on screen until you leave and then they are gone. Copy them if they matter.

Rolls are not verifiable by anyone else either. If you need a roll a suspicious opponent can check, you need a scheme where both sides commit to a value first, and a web page cannot give you that on its own.

If you only need a number in a range rather than dice, that is a simpler job than this one, and a two-way decision is simpler still.

questions

What does 3d6+2 mean?
Roll three six-sided dice, add them together, then add two. The number before the d is how many dice, the number after it is how many sides, and anything after that is added or subtracted from the total.
How do I roll with advantage?
Write 2d20kh1: roll two twenty-sided dice and keep the highest one. Disadvantage is 2d20kl1, keeping the lowest. Both are on the buttons, and the die that was set aside is shown struck through rather than hidden, so you can see the roll you did not get.
How do I roll an ability score?
Write 4d6kh3, which rolls four six-sided dice and keeps the best three. That is the usual method, and it averages about 12.2 rather than the 10.5 you would get from 3d6.
Are these rolls actually random?
They come from the browser’s cryptographic random source, not the ordinary one, and the face is taken without the rounding bias that makes a naive roller favour its low numbers. The difference is small but real, and it is the only thing a dice roller has to get right.
Can I keep my roll history?
The last twelve rolls stay on screen and can be copied, but nothing is stored between visits. This site saves nothing on your device at all, so a refresh starts a clean table.