🎲 Dice Roller

Virtual dice for D&D, board games, and tabletop RPGs. Roll any combination of dice instantly. No account. Runs 100% in your browser.

Presets

Select a die type and hit ROLL

Roll History

How to use the Dice Roller — 3 worked examples

1. D&D attack roll with modifier

Select D20, set Dice to 1, and enter your attack bonus in the Modifier field (e.g. +5). Hit ROLL. The total shown is your final attack roll to compare against the target's AC. A natural 20 is visible in the die breakdown so you can spot the critical hit immediately.

2. Ability score generation

Click the 4d6 drop lowest preset. The tool rolls four D6s, removes the lowest value automatically, and sums the remaining three — the standard D&D 5e ability score method. The dropped die is crossed out so you can see exactly which value was excluded. Roll six times to fill a full character sheet.

3. Board game turn at the table

Select D6, set Dice to 2 for a standard two-dice board game roll, and leave Modifier at 0. The Roll History panel logs every turn so players can look back at recent results without disputes. Works great as a shared screen on a tablet at the centre of the table.

Frequently Asked Questions

How random are the dice results?

Results use the browser's crypto.getRandomValues API — a cryptographically secure random number generator (CSPRNG) built into every modern browser. This is far stronger than Math.random() and produces genuinely fair dice rolls every time.

What dice types are supported?

The roller supports D4, D6, D8, D10, D12, D20, and D100 (percentile dice). You can roll 1–20 dice of any type at once and add an optional positive or negative modifier to the total.

What is advantage and disadvantage in D&D?

Advantage means rolling two D20s and taking the higher result. Disadvantage means rolling two D20s and taking the lower result. Both are core D&D 5e mechanics and are available as one-tap presets on this roller.

How do I roll with a modifier?

Enter a positive or negative integer in the Modifier field. For example, a +3 modifier on a 1d20 roll adds 3 to whatever the die shows. The total displayed already includes the modifier.

Can I share a specific dice configuration?

Yes. The dice type, count, and modifier are encoded in the URL hash fragment. Copy the URL from your address bar and share it — anyone who opens it sees the same configuration ready to roll.

How does 4d6 drop lowest work?

Click the 4d6 drop lowest preset. It rolls four D6 dice and automatically drops the lowest result, then shows the sum of the remaining three. This is the standard D&D 5e ability score generation method. The dropped die appears crossed out in the result breakdown.

Is there a roll history?

Yes. Every roll is logged in the History panel on the right (or below on mobile). The log shows the dice notation, each die's result, modifier, and total. It persists for your current session and can be cleared at any time with the Clear button.

Does this work on mobile?

Yes. The roller is fully responsive and works on any modern smartphone or tablet. It's particularly handy at the game table when physical dice are missing or when playing online over a video call.

Are my rolls sent to any server?

No. All dice rolls happen locally in your browser using crypto.getRandomValues. No roll data, configuration, or history is ever transmitted to any server. Open DevTools → Network and roll several times — you will see zero requests triggered by the rolling action.

Can I use this for games other than D&D?

Absolutely. The supported dice types cover virtually every tabletop RPG and board game: D6 for classic board games, D10 for World of Darkness and Vampire: the Masquerade, D12 for Pathfinder hit dice, D100 for Warhammer Fantasy Roleplay and Call of Cthulhu — all available here.

About this Dice Roller

The plato·potato Dice Roller is a free, browser-based virtual dice tool for tabletop RPG players, board gamers, and anyone who needs a fair, instant random result without hunting for a missing die. Whether you play Dungeons & Dragons, Pathfinder, Call of Cthulhu, Warhammer, or any dice-based board game, this tool covers every standard polyhedral die type — D4, D6, D8, D10, D12, D20, and D100 — with no account required, no app to install, and no data sent to any server.

Why crypto.getRandomValues? Most browser-based dice rollers use JavaScript's built-in Math.random(). While sufficient for casual use, Math.random() is a pseudo-random number generator seeded by the browser engine — its output is theoretically predictable given the seed. For gaming where fairness is the point, this roller uses the crypto.getRandomValues API, which draws from the operating system's entropy pool (the same source used for cryptographic key generation). Each roll is statistically independent and cannot be predicted from previous results. The implementation is fully visible in the page source — right-click and select View Page Source to inspect it.

How 4d6 drop lowest works. The character creation preset rolls four D6 dice via four separate crypto.getRandomValues calls, identifies the single lowest value, removes it from the sum, and displays the result. The dropped die appears crossed out in the result breakdown so you can always verify which value was excluded. The sum of the remaining three is your ability score. Roll six times for a full character sheet.

Privacy is structural, not a policy promise. Your rolls never leave your device. The tool runs entirely inside your browser tab — no roll data, dice configuration, or session history is transmitted to any server at any point. The history panel stores your session log in memory only; it is cleared automatically when you close the tab. Open DevTools, switch to the Network tab, and roll several times. You will see zero outbound requests triggered by the rolling action. This is verifiable by anyone, not just claimed in a policy document.

URL sharing without server exposure. The Share-via-URL feature encodes the current die type, count, and modifier in the URL's hash fragment — the portion after the # character. The HTTP specification requires browsers to strip the hash before sending a request to the server, so even the fact that you're sharing a specific dice configuration is never logged server-side. Hash fragments are handled entirely client-side.

No external dependencies. The entire roller is a single self-contained HTML file with vanilla JavaScript. There is no JavaScript framework, no CDN dependency, and no third-party analytics. Page weight stays under 30 KB, which means fast first load even on a slow mobile connection at the game table.