Dice Roller
Roll 1 to 12 six-sided dice. Each face comes from a cryptographic random word, and you can reroll a subset.
🔒 Processed entirely in your browser — nothing you enter here is ever uploaded.
Result
About this tool
Set the count from 1 to 12. Anything outside that range is clamped, and a non-number falls back to 2. Each die stores a face, a color, and a reroll checkbox. A new die starts with a random face and the next color in a fixed palette of six. The board is a CSS cube: the face you see is the face already chosen, and the spin that follows a roll is extra full turns so the same number can arrive from a different angle. The text under the board lists the faces and their arithmetic sum. Two dice therefore show a total from 2 to 12.
A roll calls crypto.getRandomValues for one 32-bit unsigned word per die that is being rolled, then keeps that word modulo 6 and adds 1. Because 2^32 is not divisible by 6, faces 1 through 4 occur once more than faces 5 and 6 across the full range of the word. The gap is one part in about a billion rolls, which is far smaller than the bias of a worn physical die, and it is not rejection sampling. Roll all replaces every face. The selected-reroll button replaces only the dice whose checkbox is on, and leaves the others where they are.
The count is six-sided dice only. There is no d20, no custom face list, and no physics model of a table. The number is chosen before the cube animates, and the result text updates about a second later, after the spin. Colors are labels so you can tell dice apart; they do not change the odds. The rolls are generated in the page and are not stored.
Example. A board of two dice shows two faces from 1 to 6 and prints their arithmetic sum. Two sixes total 12; the most common two-die total is 7.
Limit. The count is clamped to between 1 and 12, and every die is six-sided. Each face is (a cryptographic 32-bit word modulo 6) plus 1, so the distribution is extremely close to uniform and not rejection-sampled.
Is the online dice roller fair?
Each roll calls crypto.getRandomValues for one 32-bit word and keeps that word modulo 6, then adds 1. Because 2^32 is not divisible by 6, faces 1 through 4 are one count more likely than 5 and 6 across the full 32-bit range. The difference is about one part in a billion.
Can I roll a d20 or keep some dice?
Every die has six faces. The count box accepts 1 through 12. Uncheck Reroll on a die to leave it in place when you press the selected-reroll button. Roll all ignores those checkboxes and replaces every face.
Does the 3D spin choose the number?
The face is chosen before the cube animates. The extra turns are a fixed spin plus a random multiple of 360 degrees so the same face can arrive from different angles. The text under the board is the sum of the chosen faces.