Random Number Generator

Set a range and press Generate.

With repeats, or without

  • No repeats — like drawing tickets from a hat. Each number appears at most once. Right for raffles, teams and lottery numbers.
  • Repeats allowed — like rolling a die again. Every draw is independent, so duplicates are expected rather than a fault.

A note on fairness

Randomness here comes from the same generator browsers use for cryptographic keys, and the biased tail is discarded rather than wrapped around — which is the subtle flaw in most quick implementations. For a draw with real stakes, though, use a method someone else can audit.

Share this tool with friends

Free to use, no sign-up, works on any phone.

Frequently Asked Questions

How random is it?

It uses crypto.getRandomValues and rejects the biased tail instead of folding it back with a modulo, so every number in the range is exactly as likely. Math.random is not used anywhere in this tool.

What does "no repeats" do?

It draws without replacement, so each number can come up only once — the right setting for a raffle, picking teams or lottery numbers. With repeats allowed, every draw is independent and duplicates are normal.

Can I use this for a prize draw?

For an informal draw, yes, and the no-repeats mode is what you want. For anything with legal or financial weight, use a process that can be independently audited — no web page can prove to a third party what it did.

Why can I not ask for more numbers than the range holds?

With repeats off, picking 10 numbers from 1 to 5 is impossible — there are only five to give. The tool says so rather than looping forever or quietly repeating.

Are the numbers stored?

No. Everything happens in your browser and nothing is sent anywhere or kept after you close the page.

Everything on this page runs inside your own browser. Nothing you type or upload is sent to a server, so your data never leaves your device.