Physical dice work because of anticipation. You watch the die leave the hand, bounce, and settle, and the outcome feels like it happened rather than being revealed. Most web dice rollers skip that entirely — the number simply appears — which is functionally fine and atmospherically dead.
The 3D roller here keeps the roll. It matters for tabletop sessions, for classroom probability work, and for anything where people want to see that the result was not decided before they looked.
What You Can Roll
The presets cover the standard tabletop set: d4, d6, d8, d10, d12, d20. Beyond the presets, the custom face field accepts anything from 2 to 100 sides, which covers percentile dice and a range of homebrew systems.

You can roll up to 12 dice in a single throw, with a modifier of −99 to +99 applied to the total. That combination covers most of what a dice-driven system needs without anyone reaching for a second tool.
Why Each Face Is Equally Likely
The technical point worth making precisely, because “random” gets used loosely.
Each face has exactly a 1/N chance of landing up. Every roll is independent of the one before it — a 20 does not make the next roll less likely, and a long run of sixes does not change the odds of the next throw.
Two things produce this:
- A cryptographic random source. The dice draw from
crypto.getRandomValues(), the browser’s cryptographically secure generator, rather thanMath.random(). The distinction is not cosmetic:Math.random()is deterministic, so its internal state can in principle be reconstructed and future results predicted. For a board game this is trivia; for anything with a stake attached, it is the entire question. - Fair rejection sampling. When you ask for a uniform integer in a range that does not divide evenly, naively scaling a random float over-biases the low end. The roller rejects out-of-range values and redraws, which is what makes each face exactly 1/N.
The fairness page covers this in more detail if you want the mechanism.
Comparing Virtual and Physical Dice
It is worth knowing where a real die is genuinely better, because the answer is not “nowhere”.
A physical die has imperfections. It can be slightly weighted from manufacturing, slightly worn on one face, or read as a corner instead of a face. Over thousands of rolls on a worn die, the bias is small but real — enthusiasts have documented loaded dice precisely because they exist.
A virtual die has no wear, so it stays uniform indefinitely. That is a real advantage, and it is also why an unusually high roll on a real die is not always the dice being wrong.
Where physical still wins: the sound, the tactility, and the fact that a die you can pick up cannot be argued with by a suspicious player.
For Tabletop Sessions
Screen-sharing a roll solves a specific problem that comes up constantly in remote play: “I swear I rolled a 20.” When the result appears on a shared screen for everyone at the same moment, there is nothing left to dispute.
Roll the dice with the modifier set before you throw, so the total is not something you adjust afterwards.
One habit worth adopting: set a minimum roll when your system supports it. Rolling a 1 on a d20 attack is valid and unhelpful; many groups re-roll 1s on a critical check, and doing it in the tool rather than by hand keeps the record clean.
For Classrooms
A virtual die is better than a real one for teaching probability, for reasons that have nothing to do with fairness.
You can throw twelve dice at once, which makes distributions visible in a single action. Roll 12 dice a dozen times and students see the spread converge on the expected value — an intuition that takes an hour of physical rolling to build.
The custom face count helps too: a d4 is easy to reason about, a d20 gives finer granularity, and students can ask what the shape of the distribution looks like as N grows.
A related activity: roll a d100 twenty times and have students mark each result. The resulting histogram is usually lumpy, and that lumpiness is the lesson — it is what a fair process looks like from the inside, and it is why one observation proves nothing.
A Note on Prediction
A useful classroom exercise: ask students to predict the next roll before you throw it. Almost everyone guesses “low” after a high roll.
Then throw it. The point is not to be right — it is to show that no prediction is better than any other, because each roll is independent. This is easier to demonstrate with dice than with any other random process, because everyone has a strong and wrong intuition about the next one.
Try It
Open the Dice Roller. Pick your die, set any modifier, and throw. No account, no install — which matters when the session starts in two minutes.