Pick a random number between 1 and 100 instantly. Great for games, giveaways, decisions, and classroom picks — tap once for a fair 1 to 100 result.
Need to convert a specific number between bases instead of generating one? Use the Number Base Converter.
This page is preset to exactly that: press Generate and you get one whole number from 1 to 100, with both ends included. There is nothing to configure for the basic case — the minimum is already 1 and the maximum is already 100. Every result is produced in your own browser; nothing is sent anywhere, and no two visitors are handed the same number from a shared queue.
If you need more than one number, set How many to the count you want and they all appear at once as a row of tiles, with a Copy button that puts them on the clipboard as a comma-separated list. Anything up to 10,000 numbers is accepted in one press; larger requests are capped at that.
The range is inclusive at both ends, which is the first thing people want to check and the thing most write-ups leave vague. There are exactly 100 possible outcomes here — 1, 2, 3, all the way to 100 — and each is equally likely, at a 1-in-100 chance. The endpoints are not special cases and are not quietly excluded.
Internally the number is produced by taking a fraction in [0, 1), multiplying by the range size of 100, discarding the decimal part to get 0–99, and adding the minimum of 1. So the arithmetic covers 1 through 100 evenly, with no rounding step that would make the two ends half as likely as the middle — a real bug in naive generators that round instead of truncating. There is no modulo operation involved either, so the classic modulo bias, where the low end of a range gets a slightly larger share, does not arise.
If your task actually wants 0 to 99, or 1 to 99, just edit the Minimum and Maximum fields. They are ordinary inputs, and the preset is only a starting point. Negative values work too, and if you type the bounds the wrong way round the tool sorts them rather than erroring.
By default each number is drawn independently, so duplicates are entirely possible — and more common than people expect. Draw 10 numbers from 1–100 with repeats allowed and the chance that all 10 are different is about 62.8%, meaning roughly a 37.2% chance you get at least one repeat. That is not a flaw. It is what independent draws look like, and expecting otherwise is a version of the same intuition that makes the birthday problem surprising.
When repeats would ruin the task — a raffle, a seating order, picking 5 distinct winners — tick No repeats (unique — lottery / raffle). The tool then stops drawing independently and instead shuffles a pool containing every number in the range once, using a partial Fisher–Yates shuffle, and hands you the first however-many. Because each value physically exists once in the pool, a duplicate is impossible rather than merely unlikely.
The constraint that follows: you cannot ask for more unique numbers than the range contains. Request 150 unique values from 1–100 and you get a clear error saying so, not a silently truncated list. Widen the range or lower the count.
| What you want | Settings |
|---|---|
| One number, 1–100 | defaults; press Generate |
| Five numbers, repeats allowed | How many = 5 |
| Five distinct numbers | How many = 5, tick No repeats |
| A full shuffled 1–100 order | How many = 100, tick No repeats |
| Pick a winner from 1–250 entries | Maximum = 250 |
| A percentage-style value with decimals | switch to the Decimals tab |
That last row is worth knowing about: the Decimals tab draws a value anywhere in the range rather than a whole number, and you choose how many decimal places (0 to 10) to show. There is also a Dice tab that takes standard NdM notation — 1d20, 2d6, 3d6+2 — if what you actually wanted was a die roll rather than a flat 1–100 pick.
The numbers come from the browser's built-in Math.random. That is a pseudorandom generator: a fast algorithm producing a stream that is uniformly distributed and statistically well-behaved, seeded per browsing context so you do not get the same sequence twice in normal use. It is not a cryptographic generator, and this tool makes no attempt to present it as one — the browser's separate crypto.getRandomValues API exists for that, and is not what is running here.
The practical translation is straightforward. For a giveaway, a classroom activity, a board game, deciding who goes first, a lottery-style pick, a spot check, or generating test data, this is entirely adequate; the output is uniform and unpredictable to any human observer. For anything where a motivated party has money or access riding on guessing the next value — regulated gambling draws, security tokens, password or key generation, session identifiers — it is not the right instrument, because a pseudorandom stream is in principle reconstructible from enough observed output.
One more property worth being clear about: the results are not stored. Reload the page and they are gone. There is no server-side log, no history, and no way to prove after the fact that a particular number was the one drawn. If a draw needs to be auditable or contestable — a prize with real value, anything where a losing entrant might dispute the outcome — take a screen recording of the draw, or run it live in front of witnesses, before you press Generate.
Each of the 100 outcomes has a 1% chance on any single press. The question people actually have, though, is usually about repeated draws: if I keep generating, how long before my number comes up? With independent draws the chance that a given number has appeared at least once after N presses is 1 − 0.99ⁿ:
| Draws | Chance a specific number has appeared |
|---|---|
| 1 | 1.00% |
| 5 | 4.90% |
| 10 | 9.56% |
| 25 | 22.22% |
| 50 | 39.50% |
| 100 | 63.40% |
| 200 | 86.60% |
| 300 | 95.10% |
The 100-draw row is the one that surprises people. A hundred draws from a hundred possibilities still leaves a better than one-in-three chance that any particular number never showed up at all. Independent draws do not sweep the range; only the No repeats option does that, and that is exactly the difference between the two modes.
Can the same number appear twice in a row? Yes. Each press is independent of the last, so a repeat carries the same 1-in-100 chance as any other outcome. A generator that avoided repeating itself would be less random, not more — the avoidance itself would be a predictable pattern.
Why does one number seem to come up more often? Over a small number of draws, uneven-looking results are the norm rather than the exception. Truly uniform output looks clumpy up close; it is perfectly even spreads that would be suspicious. Generate a few hundred numbers and the counts flatten out.
Does it need the internet after loading? No. The generation happens locally in your browser, so the page keeps working offline once it has loaded, and nothing about your draw travels over the network.
Can I get the same sequence again? No — there is no seed field, so runs are not reproducible. If you need a repeatable sequence for testing, you want a seeded generator in your own code rather than a browser tool.
Is there a bell-curve option? There is, on the Integers tab: ticking the Gaussian option clusters results near the middle of the range instead of spreading them evenly, with the values still clamped inside 1–100. It cannot be combined with No repeats, since the two rules conflict. Leave it off unless you specifically want a centre-weighted draw — for a fair pick, uniform is what you want.
What if I need a wider or narrower range? Edit Minimum and Maximum. Nothing about this page is locked to 1–100; the preset just spares you two keystrokes for the most common request. The same widget also offers binary, octal and hexadecimal output on the Integers tab if you need the result in another base.
Just tap the Generate button — this page is preset to the 1-to-100 range, so a single fair number from 1 through 100 appears instantly. There is nothing to configure and nothing to install.
Every number from 1 to 100 has exactly a 1% chance on each draw, because all 100 outcomes are equally likely. The generator does not favor "lucky" numbers and has no memory of earlier results, so each pick is independent.
Yes. People are surprisingly biased when they "pick a number" — values like 7, 37, and 73 get chosen far more often than chance would predict, and round numbers get avoided. A random generator treats all 100 numbers identically, which is why it is the fair way to settle games and giveaways.
This page is fixed to 1–100 for one-tap speed, but the underlying Random Number Generator supports any range. Open the full generator to set your own minimum and maximum, draw multiple numbers, require no repeats, or switch to decimals and dice notation.