Random Number Generator

Draw random numbers in any range, with cryptographic randomness, not Math.random().

Set a range and press Generate.


Your numbers will appear here.

, Sum
, Mean
, Lowest
, Highest

Features

  • Any integer or decimal range
  • Draw with or without replacement
  • Up to 10,000 numbers at once
  • Summary statistics for the draw
  • Cryptographically secure, uniformly distributed

How to use it

  1. Set the minimum and maximum.
  2. Choose how many numbers you need.
  3. Turn on no-repeats for lottery-style draws.
  4. Press Generate.

Why the source of randomness matters

JavaScript's Math.random() is a pseudo-random generator seeded from an internal state. It is fast and statistically fine for animations or shuffling a playlist, but it is not unpredictable: given enough consecutive outputs, its internal state can be recovered and all future values predicted. That makes it unsuitable for anything where someone benefits from guessing the result, prize draws, tokens, passwords, or shuffling cards for money.

This tool uses crypto.getRandomValues(), which draws from the operating system's cryptographically secure entropy pool. Predicting its output requires breaking the underlying CSPRNG, not merely observing previous values.

There is a second, subtler trap. The obvious way to map a random integer into a range is value % range, but unless the range divides evenly into the generator's output space, the lower values in the range come up slightly more often. For a small range the bias is tiny; for a large one it can be several percent. This tool uses rejection sampling, discarding and redrawing values that fall in the uneven tail, which makes the distribution exactly uniform at the cost of an occasional extra draw.

Frequently asked questions

Yes, completely. Random Number Generator is free with no usage limits, no account and no sign-up. There is no paid tier and no trial that expires. Tools marked Premium on this site carry that label to indicate a deeper feature set, not a price.
Random Number Generator covers any integer or decimal range, draw with or without replacement, up to 10,000 numbers at once, among other things. Everything is available immediately with no account, no sign-up and no usage limit.
JavaScript's Math.random() is a pseudo-random generator seeded from an internal state. It is fast and statistically fine for animations or shuffling a playlist, but it is not unpredictable: given enough consecutive outputs, its internal state can be recovered and all future values predicted. That makes it unsuitable for anything where someone benefits from guessing the result, prize draws, tokens, passwords, or shuffling cards for money.
Everything happens inside your browser. The text you enter is processed by JavaScript running on your own device and is never sent to a server, there is no backend to send it to. You can confirm this in your browser's Network tab while you use the tool. Because nothing depends on a server, the tool also keeps working offline once the page has loaded, the site registers a service worker that caches it after your first visit.

Related tools

Further reading

📖 How to Generate Truly Random Numbers (and Why Math.random Isn't Enough)

Read the full guide on the 123MiniApps blog.

Pick a theme

Ten hand-tuned palettes.