Yes. Each face is selected with `crypto.getRandomValues()`, which uses the operating system's cryptographically secure generator, with value rejection to avoid modulo bias. Every value has identical probability.
Roll any dice combination, D4 to D100, with 3D animation, modifiers, advantage and history
This roller supports the classic RPG and board-game dice, D4, D6, D8, D10, D12, D20 and D100, plus custom dice with any number of sides from 2 to 1000. Unlike simple rollers, here you build a complete roll: mix different die types in the same throw (like 2d6 + 1d8), add a flat modifier, and choose between a normal roll, advantage (roll everything twice and keep the higher total) or disadvantage (keep the lower). If you prefer typing, use standard RPG notation, 2d6+3, 1d20-1, d%, plus the keep/drop modifiers (kh, kl, dh, dl), like 4d6dl1 for the classic D&D ability-score roll, straight into the notation field. Every result comes from `crypto.getRandomValues()`, the browser's cryptographic generator, with modulo-bias rejection to guarantee a uniform distribution. Every die from D4 to D20 is a real 3D polyhedron, rendered with WebGL (three.js) with lighting and shading; only the D100 and custom dice render as a flat token. The tool shows your roll's exact minimum, maximum and average before you roll (even with kh/kl/dh/dl), highlights critical hits (max value) and natural 1s, sums the total automatically, saves named macros as reusable presets and keeps your last 20 rolls in a timestamped history.
Each roll draws an integer between 1 and the die's number of faces (N) using `crypto.getRandomValues()`. The code rejects out-of-range values to avoid modulo bias, so every face has exactly the same probability, 1/N, a discrete uniform distribution, the mathematical model of a "fair" die.
The animation is purely visual: the result is decided before the die stops spinning. The 3D die spins in real time (WebGL), and the final rotation is computed so the correct face ends up facing the camera. Animation speed or duration never influences the value.
The NdX+M notation summarizes a roll: N dice with X faces, plus a modifier M. For example, 2d6+3 asks for two D6 rolls (each 1 to 6) plus 3, the result ranges from 5 (1+1+3) to 15 (6+6+3), averaging around 10, since a D6 averages 3.5. The notation field accepts compound expressions like 2d6+1d8+3 that mix different dice in one throw.
For a spell dealing 3d8 damage, add three D8s: possible values run from 3 to 24 with an average of 13.5 (3 × 4.5, since a D8 averages 4.5). Rolling several dice concentrates results near the average, which is why 3d8 is more predictable than a single hypothetical die with a similar range. The tool computes and shows your roll's minimum, maximum and average before you even roll.
In D&D 5e, rolling with advantage means rolling twice and keeping the higher result; with disadvantage, the lower. This changes the odds substantially: the chance of a natural 20 on a d20 rises from 5% to 9.75% with advantage, and the d20's average climbs from 10.5 to about 13.8. This tool applies the same principle to the whole roll: everything is rolled twice and both totals are shown, with the one that counts highlighted.
One point always worth repeating: every roll is independent. If you just rolled three 20s in a row, the chance of the next 20 is still 1/20, the die doesn't "owe" you a low value and isn't "hot". Believing otherwise is the gambler's fallacy; here every roll starts fresh, uninfluenced by what came before, and the history exists as a record, not as a predictor.
Beyond the advantage/disadvantage selector, the notation field accepts the four standard keep/drop modifiers: kh (keep highest, keeps the N highest), kl (keep lowest, keeps the N lowest), dh (drop highest, drops the N highest) and dl (drop lowest, drops the N lowest). The classic D&D ability-score method, roll 4d6 and drop the lowest result, is typed as 4d6dl1: the tool rolls all four dice, sums only the three highest and shows the dropped value in parentheses in the result, like [2, 5, (1), 6]. The exact average of this method is about 12.24 (versus 10.5 for plain 3d6), which is why it tends to produce above-average ability scores.
D&D 5e advantage can also be written as notation: 2d20kh1 rolls two d20s and keeps only the higher, the same effect as picking "Advantage" in the mode selector, but inside a compound expression, for example 2d20kh1+5 for an attack roll with advantage and a +5 bonus. Each modifier accepts a number after the letter (kh1, dl2) or defaults to 1.
Paste the code into your HTML and the tool shows up on your page, without J-Kit's navigation and ads. It still runs in the browser of whoever visits your site.
<iframe
src="https://jkit.tools/embed/en-US/dice-roller"
width="100%"
height="600"
style="border:0"
loading="lazy"
title="Dice Roller"
></iframe>These references help contextualize formulas, standards, APIs and limitations used on this page. They do not replace professional validation when a result has legal, financial, medical or operational impact.
Yes. Each face is selected with `crypto.getRandomValues()`, which uses the operating system's cryptographically secure generator, with value rejection to avoid modulo bias. Every value has identical probability.
1d6 · Min 1 · Max 6 · Avg 3.5
Save your current roll to reuse it later