63
Presets

The same seed with the same settings always gives the same numbers. Leave it empty and every press is a fresh draw nobody can predict.

About this draw

Lowest63
Highest63
Sum63
Mean63
Median63
Possible values100

Every number is drawn on your device and sent nowhere. The history lives in this page only — reload and it is gone.

How it works

A range is not a continuous stretch; it is a finite set of reachable values. The range 1–45 holds 45 of them. The range 0–1 to two decimal places holds 101, because both ends are in it. This page draws one of those values rather than scaling a float and rounding afterwards — rounding at the end gives the two endpoints half the chance of every value between them, which is the most common silent bug in a random number generator.

The randomness comes from your browser’s `crypto.getRandomValues`, never `Math.random`. `Math.random` is a pseudo-random generator seeded from the system clock: the output looks fine, and anyone who knows roughly when it ran can narrow the result. For a prize draw that is the difference between "nobody can guess it" and "the organiser can".

Reducing a 32-bit random word to a range is also not simply `word % size`. That is biased: when 2³² is not a multiple of the range size, the values at the low end come up more often. This tool discards words that fall outside the largest exact multiple and draws again, so every number in the range is equally likely.

Drawing without repeats is not "draw again if it is a duplicate" either. That is fine for six numbers out of forty-five and quadratic for ninety out of a hundred — which is exactly when people reach for it. Here it is a Fisher-Yates shuffle run for only as many steps as numbers requested, so 900 out of 1,000 costs the same per number as one out of ten, and every ordering stays equally likely.

The seed field swaps the source for a deterministic generator derived from the text you type. The same seed with the same settings always produces the same numbers, on any machine at any time — which is what turns a random result into something another person can check. The trade is that a seeded draw is predictable to anyone who knows the seed, so it is never the right tool for anything that has to stay secret.

Formula

possible values = (to − from) × 10^(decimal places) + 1

The +1 is because both endpoints are in the range. 1–6 holds six values, not five, which is why a die has six faces.

Worked example

Drawing 6 numbers from 1–45 with no repeats:

Possible values
(45 − 1) × 1 + 1 = 45
Distinct sets of six
C(45,6) = 8,145,060
Chance of any one set
1 in 8,145,060
Shuffle steps performed
6, not 45

Add a seed — the name of the draw and its date, say — and anyone who opens the page with those settings gets these same six numbers: evidence that the result was not changed after it was announced.

Frequently asked questions

Are these numbers really random?

With the seed field empty, yes: the source is `crypto.getRandomValues`, the same source your browser uses for cryptographic keys, and nobody can predict it. With a seed, the result is deterministic — still uniformly distributed, but reproducible by anyone who knows the seed. That is the trade you make on purpose when you want the draw to be checkable.

What is a seed for?

So somebody else can get your result back. Publish the seed and the settings before the draw, and anyone can run it themselves and see the same numbers — no trust in you required. The "Share these settings" button builds a link that already carries the range, the count and the seed.

Are the endpoints included?

Yes. A 1–10 range can return both 1 and 10, each with the same one-in-ten chance as the eight numbers between them. The "Possible values" figure in the statistics is the quick check: 1–10 should read 10, not 9.

How many numbers can I draw at once?

1,000 per draw, anywhere between −1,000,000,000 and 1,000,000,000. If "no number twice" is ticked and the range does not hold that many distinct values, the count drops to how many it does hold and the page says so, rather than quietly returning fewer.

Why did my decimal places get reduced?

Because the range is too wide for that much precision. A billion-wide range at six decimal places is 10¹⁵ distinct values, more than the sampler can address. The range is what you asked for, so it is kept; the trailing digits are what gives, and the page tells you when it happens.

Why does the copied result use a dot for decimals?

Because that list is usually pasted into a spreadsheet, a message or some code, and every one of those reads "1.234,5" as something else. Both the numbers on screen and the copied text use a plain dot and no thousands separator, so they mean the same thing wherever they land.

Can I use this to generate a password or an OTP?

Better not to. The unseeded source is strong enough, but a string of digits is still a weak password, and a seeded one can be regenerated by anyone who learns the seed. For a password, use the password generator — it has the full character sets and an entropy figure so you know what you are holding.

Do the numbers leave my device?

No. Everything runs in your browser. The history of earlier draws lives in the page’s memory only — reload and it is gone, and nothing is written to your device or sent anywhere.

Sources

Report a problemWrong result, out-of-date figures or a display bug? Send it from here. The page address and tool name are attached for you — just describe what is wrong.

Report a problem

The more specific the faster it gets fixed: what you entered, what you got, and what you expected.

What kind of problem?
0/2000

Only used to reply to you, nothing else.

Sent with your report

Page
/en/random-number-generator
Tool
Random Number Generator
Language
English

The values you typed into the tool are not sent. Besides what is listed below, the server records the browser type and uses your IP address to rate-limit submissions — the privacy policy has the detail.