How do I get a random number between 1 and 10?
Set the minimum to 1, the maximum to 10, and how many to 1, then press Generate. Both ends are included, so every number from 1 through 10 has exactly a one in ten chance. The same fields handle 1 to 100 or any other range.
How many numbers can I generate at once?
Up to 1,000 in a single click. They come out one per line, which pastes cleanly into a spreadsheet column, and the Copy button grabs the whole list.
Can it generate decimals?
No, integers only. For a decimal, generate over a scaled range and divide: numbers from 0 to 100 divided by 100 give you two-decimal values from 0.00 to 1.00, uniformly distributed.
Can I use it for a raffle or giveaway?
Yes. Number the entries, generate one number in that range, and the winner is the matching entry. Draws are cryptographically uniform, but remember that each draw is independent, so for multiple winners you should discard duplicate numbers. For public trust, share your numbered list before you draw.
Is the random number generator free?
Yes, with no signup and no usage cap. It is a small piece of JavaScript that runs in your browser tab, so there is nothing to install and it works offline once loaded.
Why do I keep getting the same number twice?
Because each draw is independent, which means repeats are not merely possible but expected. The intuition that a random list should have no duplicates is the same intuition the birthday paradox demolishes: in a group of 23 people, there is a better than even chance that two share a birthday, despite there being 365 possibilities. If you are drawing 10 numbers from 1 to 100, a repeat is not remarkable at all. For a raffle where each entry can only win once, generate more numbers than you need and discard the duplicates.
How random is it really?
It uses crypto.getRandomValues, the browser's cryptographically secure generator, which is seeded from the operating system's entropy pool rather than from a clock. It also applies rejection sampling, which means values landing in the biased tail of the 32-bit range are thrown away and redrawn. Without that step, taking a random 32-bit number modulo your range would make the lowest numbers appear very slightly more often. The effect is tiny, and correcting it is cheap, so there is no reason to accept it.
Can I reproduce the same sequence again?
No, and that is deliberate. A cryptographically secure generator has no seed you can set, which is precisely what makes its output unpredictable. If you need reproducibility, for example to rerun a simulation or debug a test that failed on a particular sequence, you need a seeded pseudo-random generator such as a Mersenne Twister or a small xorshift, where the same seed always yields the same stream. The two goals are in direct opposition: unpredictable and reproducible cannot both be true.
Is the range inclusive?
Yes, at both ends. A minimum of 1 and a maximum of 6 can produce both a 1 and a 6, giving the six outcomes of a die. This differs from many programming languages, where a range function excludes the upper bound, so if you are transcribing a range from code, check whether you need to add one to the maximum.
Is anything sent to a server?
No. The numbers are generated by your browser and never transmitted, so a draw made here is not visible to anyone but you.