Six random generators on one page
Use the toolbar to switch between the generators. Number returns one whole number between a minimum and maximum you choose. Dice rolls one to six standard six-sided dice and adds up the total. Picker chooses one line from a list you paste in. Lottery draws a set of different numbers from a range and sorts them. Coin Flip tosses a coin and keeps a running tally of heads and tails. Bulk produces up to 1,000 numbers at once for sampling, test data or classroom exercises.
How to use it
- Click a mode in the toolbar.
- Set its options: Minimum and Maximum for Number and Bulk (plus Count, up to 1,000), the dice slider, one item per line in the Picker box, or Range From, Range To and How many numbers for Lottery.
- Press Generate, Roll Dice, Pick Random, Draw Numbers, Flip Coin or Generate All. The short spinning animation is only visual; the value that stays on screen is a fresh draw made when the animation ends.
- Use Copy, Copy All or the small copy icon next to each bulk result to put numbers on your clipboard. Lottery numbers are copied comma-separated and bulk lists one per line.
Where the randomness comes from
Every draw on this page uses crypto.getRandomValues(), the Web Crypto random source built into modern browsers. It is a cryptographically secure pseudo-random number generator that the browser seeds from the operating system’s entropy pool. It is not “true” randomness in the physical sense — no dice, radio noise or quantum hardware is involved — but its output cannot practically be predicted, which is what matters for fair picks. Math.random() is not used anywhere.
To turn random bytes into a number in your range without favouring any value, the page uses rejection sampling. For a range of 1–100 it reads one byte (0–255), accepts only values 0–199, and returns 1 plus the remainder after dividing by 100; bytes from 200 to 255 are thrown away and redrawn. Each of the 100 results therefore has exactly two accepting byte values and the same chance. The Lottery mode keeps drawing and discards repeats until it has the requested count of different numbers, then sorts them in ascending order, so every combination is equally likely.
Only whole numbers are produced; a decimal typed into a range field is cut down to its integer part. Ranges up to about 281 trillion values (248) are handled exactly; wider ranges go beyond the precision of JavaScript’s number arithmetic and are not recommended. Everything happens in your browser: your ranges, lists and results are not uploaded or saved, and the coin tally resets when you reload the page.
Frequently asked questions
Is this truly random?
It is cryptographically secure pseudo-randomness, the same kind browsers use to generate encryption keys. That is unpredictable enough for games, draws and sampling, but it is produced by an algorithm, so strictly speaking it is not physical “true” randomness.
Can the same number come up twice?
In Bulk mode, yes — each of the numbers is an independent draw, so repeats are normal (drawing 10 numbers from 1–100 gives at least one repeat roughly 37% of the time). Lottery mode never repeats a number within one draw. If you need a shuffled list without repeats, use Lottery with a count equal to the range size.
Is it suitable for a giveaway or raffle?
For informal draws, yes. The page does not keep a record of results, so if a draw needs to be verifiable, capture the screen or run it in front of participants, and follow any local rules for prize draws. No generator can predict or improve your chances in an official lottery.
I got heads six times in a row — is the coin broken?
Streaks are a normal part of randomness. Six heads in a row has a 1 in 64 chance for any particular six flips, so across many flips it will happen. The tally under the coin evens out as the number of flips grows.