Dice Roller

Roll virtual dice (d4 through d100) with an animated roll, a running history log, and a simple coin-flip mode, all in your browser.

runs locally on your browser. Your data never leaves your device.

Die Type

Number of Dice

2 / 20

No dice rolled yet

Pick your settings and hit Roll to get started.

Roll History

Your rolls and flips will appear here.

Common Use Cases

Roll a d20 for attack, skill, or saving-throw checks in a tabletop RPG session
Roll multiple dice at once (e.g. 4d6) to total up damage or ability scores
Roll a d100 for percentile-based skill checks or random encounter tables
Flip a virtual coin for a quick, fair decision when you don't have one on hand

About Dice Roller

Physical dice are easy to lose, easy to mis-tally when several are rolled at once, and not always on hand, whether you're running a tabletop RPG session over video call, settling a quick decision, or just need a fast, fair random pick. This tool rolls virtual dice entirely in your browser: pick a die type, choose how many to roll, and get an instant, fair result with a brief animated roll so it still feels like a roll rather than an instant lookup.

Six standard polyhedral die types are supported: d4, d6, d8, d10, d12, and d20 (the full set used by most tabletop RPGs including Dungeons & Dragons), plus d100 (percentile) for skill checks and percentage-based tables. Roll from 1 to 20 dice of the same type at once; the tool shows each individual result alongside the running total, so a "4d6" damage roll or a handful of d20 advantage rolls are just as easy to read as a single die.

Every roll, along with coin flips, is appended to a running history log for the session, newest first, so you can scroll back to confirm what you rolled a few turns ago without re-rolling or trusting memory. A coin-flip toggle switches the tool into a simple heads-or-tails mode for the times you just need a fair 50/50 call instead of a numbered die, using the same animated-roll and history mechanics.

Randomness comes from JavaScript's Math.random(), a pseudo-random number generator that's more than fair enough for games, decisions, and casual use. Nothing is uploaded, transmitted, or logged anywhere outside your own browser tab, and refreshing the page simply starts a fresh session.

Frequently Asked Questions

Is this as fair as a physical die?
Each roll uses JavaScript's Math.random(), which produces a statistically uniform result across the die's full range: every face has an equal chance of coming up, the same as a well-balanced physical die. It isn't cryptographically secure random, so it isn't suitable for security purposes like generating passwords, but for games, decisions, and casual dice rolling it's more than fair.
What die types can I roll?
d4, d6, d8, d10, d12, d20, and d100 (percentile), the standard set used by most tabletop RPGs, board games, and probability exercises. You can roll 1 to 20 dice of the same type at once, and switch die types freely between rolls.
How does the running history log work?
Every roll and coin flip you make during your current visit is added to the top of the history log, along with a timestamp, so you can scroll back through recent rolls. The log only exists in your browser tab for this session; it isn't saved anywhere, and refreshing or closing the page clears it. Use the Clear History button to reset it manually at any time.
How does coin-flip mode work?
Turning on the Coin Flip toggle swaps the die-type picker for a simple heads-or-tails coin, using the same quantity control, animated flip, and history log as dice rolls, useful any time you need a quick, fair 50/50 call instead of a numbered result.
Does this tool send my rolls anywhere?
No. Every roll and flip is generated and displayed entirely inside your browser using Math.random(), so nothing about what you roll, how often, or when is ever sent to a server, logged, or stored outside your current browser tab.