Random Number Generator
Generate random numbers in any range. Supports multiple results, dice, and coin flip.
Navigation
Private by default
Files stay in your browser. Nothing is uploaded unless a tool says otherwise.
When to use this
Your team is running a giveaway and you need to pick a winner from 500 entries. Or you're a teacher assigning students to groups and want the selection to be genuinely unbiased. Maybe you're settling a friendly argument about who pays for dinner. Any time you need a number that nobody can predict or accuse of being rigged, you need a random number generator backed by real entropy — not a coin flip, not "just pick one," and not a PRNG seeded by the clock.
Developers use this for generating test data, seeding sample databases, or simulating dice rolls in a board game prototype. Researchers use it for selecting random samples from a population. DMs use it for tabletop RPGs when their physical dice are across the room. The tool supports custom ranges, multiple results at once, and built-in dice and coin flip modes for the most common scenarios.
This generator uses your browser's crypto.getRandomValues() API, which draws from hardware entropy collected by your operating system — CPU timing jitter, interrupt timing, and other physically unpredictable signals. Unlike Math.random(), which uses a deterministic PRNG seeded by the clock, these results cannot be predicted or reproduced.
Good to know
Cryptographic randomness is overkill for most tasks — and that's fine. You don't strictly need hardware entropy to pick a restaurant. But using it means nobody can claim the result was biased, and it costs nothing extra. Better to over-deliver on fairness than to explain why Math.random() was "good enough."
Multiple results are independent. Generating 10 numbers between 1 and 100 can produce duplicates because each draw is independent. If you need unique numbers (like raffle picks), the tool removes duplicates from the result set automatically when you enable that option.
Dice notation maps to ranges. A d20 is just a random integer from 1 to 20. 2d6 is two independent rolls of 1-6, summed. The built-in dice mode handles standard polyhedral dice (d4, d6, d8, d10, d12, d20, d100) so you don't need to set ranges manually.
Coin flips are 50/50, not 51/49. Physical coins have a slight bias toward the side facing up at the start of the toss (about 51%). A cryptographic coin flip is exactly 50/50 — one bit of entropy, no physics involved.
Quick Reference
| Use Case | Range / Mode | Fairness Level |
|---|---|---|
| Giveaway winner (500 entries) | 1 – 500 | Cryptographic — auditable |
| Coin flip | Heads / Tails | Exactly 50/50 |
| D&D attack roll | d20 (1 – 20) | Uniform distribution |
| Random group assignment | 1 – N (multiple results) | Independent draws |
| Lottery-style pick (no repeats) | 1 – 49, 6 unique results | Cryptographic, deduplicated |
| Test data seeding | Any range, bulk generation | CSPRNG-backed |