Random Number Generator
Cryptographically-secure, from any range. Unique or with repeats.
How "random" is this?
We use crypto.getRandomValues() — your browser's cryptographically-secure pseudorandom number generator, also used by banking systems, HTTPS session tokens, and password managers. It's suitable for lotteries, password seeds, randomised testing, raffle draws, game development, A/B test assignment, and survey sampling.
The distribution is uniform (every number in your range has exactly equal probability) and independent (each generation has no memory of previous ones — there's no "hot" or "cold" number).
It is not suitable for legal gambling outcomes — most jurisdictions require hardware RNGs with independent audit trails for that. For everything else, this is as random as you need.
Common uses
- Raffle / giveaway winner. Set min=1, max=(number of entries), count=1. For multiple winners, enable "Unique only" and bump count.
- Pick a winner from a team list. Number your list 1-N, generate one number in that range.
- Lottery numbers. Enable "Unique only," count=6 (or your game's draw size), min=1, max=45 (or whatever).
- Random decision / Monte Carlo. For coin-flip-style yes/no, use min=1 max=2. Weighted decisions: use bigger ranges and bucket the result.
- A/B test assignment. Generate a single integer per user session, bucket into groups.
- Dungeon master rolls. Prefer the Dice Roller for that — it speaks proper dice notation.
Session history
The last 10 generations are kept below so you can scroll back — useful for raffle judges or if you accidentally re-roll and need to recover the previous number. History clears when you close the tab or hit "Clear" — nothing is stored on our server.