ROLL · BUILD · UNDERSTAND

Dice Roller

Roll one die, a mixed tabletop pool, or full RPG notation. Results use browser Web Crypto with rejection sampling, and the probability lab shows what the same roll should do in theory.

d4→d100plus custom dice
Web Cryptobias-safe mapping
localno account
ROLL WORKBENCH

Build a roll your way

RPG NOTATION

Type the whole roll

R = roll

Examples: 1d20+5, 2d6+1d8+3, 2d20kh1, 4d6kh3, 4d6dl1. Use kh/kl to keep or dh/dl to drop.

MIXED DICE POOL

Tap dice to build a pool

Pool is empty. Tap a die above.
ROLL BREAKDOWN

Every die, including discarded dice

Your dice will appear here.

EXACT PROBABILITY LAB

Know the odds before you roll

For ordinary dice sums, compute the exact discrete distribution instead of estimating it.

PROBABILITY58.333%21 / 36 for 2d6 ≥ 7
EXPECTED TOTAL7range 2–12
MOST LIKELY716.667%

Exact distribution currently supports additive/subtractive dice groups and flat modifiers without keep/drop operators, with a bounded state range for browser safety.

SIMULATION & FAIRNESS

Compare theory with repeated rolls

Monte Carlo check

Run the probability-lab expression many times with the same secure random source and compare the observed event rate.

—No simulation yet.

Single-die fairness snapshot

Roll one selected die 5,000 times and inspect its frequency spread and χ² snapshot. Random samples will never be perfectly flat.

—No fairness sample yet.
DAILY DICE MATH

One probability question per UTC day

This is a deterministic learning puzzle, not a random roll.

TODAY'S ROLL—

Loading…

Choose an answer.
ROLL HISTORY

Keep the last 30 rolls in this browser

No rolls yet.

DICE NOTATION GUIDE

Read the expression before the dice hit the table

2d6 + 3

Count · sides · modifier

Roll two six-sided dice, add their faces, then add 3. The possible total is 5 through 15.

2d20kh1

Keep highest

Roll two d20s and keep the higher result. This is the familiar advantage pattern. kl1 keeps the lower.

4d6dl1

Drop lowest

Roll four d6s, discard the lowest, and total the other three. dh1 drops the highest instead.

Web Crypto

Fair mapping matters

Each face is chosen with rejection sampling from crypto.getRandomValues(), avoiding simple modulo bias when the number of sides does not divide the raw integer range.

Randomness method, scope & limitations

Secure browser randomness

Actual rolls use crypto.getRandomValues(). The mapper rejects the small tail of 32-bit values that would make a plain remainder uneven, then maps the accepted value to a die face.

No silent fallback

If Web Crypto is unavailable, rolling is disabled instead of silently switching to Math.random().

Probability lab

The exact lab uses discrete convolution for ordinary additive dice expressions. Keep/drop notation can still be rolled, but is intentionally excluded from the exact-distribution calculator on this version so the page does not pretend to solve a different sample space.

Scope

This is a local dice and probability tool for tabletop games, classrooms, practice, and everyday random decisions. It is not an audited physical random-number source and is not intended for gambling, regulated drawings, cryptographic key generation, or other high-stakes outcomes.