Dice Roller

Roll virtual dice online instantly. Supports D4, D6, D8, D10, D12, D20, and custom dice counts. Perfect for tabletop RPGs, board games, and random decisions. 100% free and fast.

Standard Dice — Click to Select
D&D 5e — Advantage & Disadvantage
Dice Notation — Advanced Expression
Supports: NdX, NdXkhN (keep highest), NdXklN (keep lowest), +/- modifiers. Try: 4d6kh3 for stat generation, 2d20+5 for attack rolls.
Result
Select dice above and hit Roll — results show here.
Game Master Presets
No saved presets yet.
Roll History
Your roll history will appear here.
Powered by Cryptographically Secure PRNG (CSPRNG) — Math.random() is never used. Zero ads. Zero server storage. No tracking. Everything runs locally in your browser.

What is This Tool

If you've ever been mid-session and realized someone forgot their dice bag — or you're playing online and need a roll everyone can trust — this is the tool you want open. It's a full-featured RPG dice roller built for D&D 5e, Pathfinder, and virtually any tabletop game that uses polyhedral dice.

The complete standard set is here: D4, D6, D8, D10, D12, D20, and D100 (percentile). Roll them one at a time, mix them together, or fire off a full set at once. For DMs and power players, the dice notation parser handles expressions like 4d6kh3 (classic attribute generation) or 8d6 (Fireball) the same way any VTT would — with a clear breakdown of every single die rolled, not just a final number.

The randomness comes from your browser's Web Crypto API, which means these rolls are cryptographically secure. No sketchy Math.random() shortcuts, no server calls, no ads, no tracking. Your rolls stay on your screen.

How to Use

Getting your first roll takes about three seconds:

Key Features

Common Use Cases

Here's where this tool actually gets used day-to-day:

Frequently Asked Questions

Are these rolls actually random, or just Math.random() wrapped up nicely?

Genuinely different. This tool uses the Web Crypto API's getRandomValues() method, which is a cryptographically secure pseudorandom number generator — the same standard used in security-sensitive applications. Math.random() is explicitly not used. If you're curious about the implementation, it's all running client-side in your browser with no obfuscation.

What dice notation syntax does the parser support?

The parser handles standard NdX format (like 3d6 or 1d20), keep-highest with kh (like 4d6kh3), keep-lowest with kl (like 2d20kl1 for Disadvantage), and integer modifiers using + or - (like 2d8+4). Expressions can be typed directly or pasted — no spaces required around operators.

Do presets save between browser sessions?

Presets are saved in your browser's memory for the current session. Closing or refreshing the tab clears them. This is intentional — no data is written to localStorage or any server. If you need a preset permanently available, just keep the notation expression noted somewhere; it takes two seconds to re-enter.

How does the Advantage / Disadvantage button differ from typing 2d20kh1 myself?

They produce identical results mathematically. The dedicated buttons are just a one-tap shortcut that also labels the roll clearly in the history log as "Advantage" or "Disadvantage," which is easier to read aloud at the table compared to a raw notation string.

Can I use keyboard shortcuts to roll faster?

Yes. Press Space or Enter anywhere on the page (when the notation input isn't focused) to re-roll whatever you last rolled — same dice, same expression, fresh result. It's the fastest way to chain multiple rolls during combat without touching the mouse.

Advanced Tips

A few things that take this from useful to actually powerful at the table:

Back to top