Custom dice for any face count
A die with N sides produces an integer from 1 to N inclusive on each roll, with every value equally likely. The roller draws each integer via floor(random() * sides) + 1, which is the standard formula. Each roll is independent of the previous one, so the same number can come up several times in a row.
Sides ranges from 2 to 100, covering the standard tabletop set (d4, d6, d8, d10, d12, d20) and well beyond. Rolls ranges from 1 to 1000 for bulk runs.
For pure binary outcomes use the coin flip instead. For arbitrary integer ranges (negatives, zero-inclusive, capped at any max) use the random number generator.
How to use dice roller
- 1Open the tool. The input panel can be left empty.
- 2Set Sides in the option panel (default 6, range 2-100).
- 3Set Rolls from 1 to 1000.
- 4The output panel fills with that many integers, one per line.
- 5Click Copy to grab the list.
Keyboard shortcuts
Drive TextResult without touching the mouse.
| Shortcut | Action |
|---|---|
| Ctrl F | Open the find & replace panel inside the input Plus |
| Ctrl Z | Undo the last input change |
| Ctrl Shift Z | Redo |
| Ctrl Shift Enter | Toggle fullscreen focus on the editor Plus |
| Esc | Close find & replace, or exit fullscreen |
| Ctrl K | Open the command palette to jump to any tool Plus |
| Ctrl S | Save current workflow draft Plus |
| Ctrl P | Run a saved workflow Plus |
What this tool actually does
Any face count from 2 to 100
Sides can be any integer from 2 (a coin-style die) up to 100 (a percentile die plus some). The standard tabletop set (4, 6, 8, 10, 12, 20) all work, as do unusual values like 7 or 13.
Inclusive range 1 to N
Each roll is an integer from 1 to Sides, both endpoints reachable, with equal probability for every value.
Bulk rolls up to 1000
Rolls ranges from 1 to 1000. Each roll is independent; expect repeats and short runs of the same value.
Plain integer output
Each line is one whole number, no decoration. Easy to sum, average, or paste into a spreadsheet.
Browser-only
Computed via Math.random(). No upload. Suitable for casual gaming and fixtures; not cryptographic.
Worked example
Ten rolls of a six-sided die (default settings). Expect short runs of the same value; over many rolls the average converges to (N+1)/2, here 3.5.
Sides: 6 - Rolls: 10
4 6 2 6 1 3 5 3 6 2
Settings reference
| Option | Effect on output |
|---|---|
| Sides | Number of faces per die. Default 6, minimum 2, maximum 100. |
| Rolls | How many rolls to emit. Default 10, minimum 1, maximum 1000. One per line. |
| Range | Inclusive on both ends: every roll is between 1 and Sides. |
| Distribution | Uniform across the range. |
| Independence | Each roll is independent. |
| Random source | Math.random(). |
FAQ
Can I roll multiple dice at once and sum them?
Why does the same number keep coming up?
1/Sides of the time.Can I use modifiers like d20+5?
Is this random good enough for tabletop?
Math.random() produces uniformly distributed values in [0, 1); the floor-and-add-1 step preserves that uniformity. For competitive play, use physical dice or a vetted RNG.