Random number generator
A list of random whole numbers between 1 and 100 is already below — as plain text, one per line. Open the builder to change the range, switch to decimals or a bell curve, and generate up to 100,000 of them with a seed that brings back the same list tomorrow.
Generate random numbers now
A sample from the real generator, with a fixed seed. The live version loads in a moment.
61 67 90 53 60 22
Three kinds of random number
A request for “random numbers” is usually one of three different things, and the generator has a field type for each:
| Field type | What it draws | Options | Typical use |
|---|---|---|---|
| Integer | A whole number, every value in the range equally likely, both ends included | min, max | quantities, IDs, dice, ratings |
| Decimal | A number with a fixed count of decimal places, uniform across the range | min, max, decimals (0–8) | prices, weights, measurements |
| Number (Normal Dist.) | A bell-curve value around a mean, optionally clamped | mean, std dev, min, max, decimals | ages, latencies, test scores |
Add more than one column and each row carries one of each — a quantity, a unit price and a response time side by side — which is the difference between a number generator and a test-data generator.
Uniform or bell curve: which one your test wants
A uniform draw makes 1 and 100 exactly as likely as 50. That is what you want for a dice roll and almost never what real data looks like: a column of ages, order values or API response times clusters around a typical value and thins out towards the extremes. Feed a uniform column into a chart, a percentile calculation or a histogram and the output looks wrong in a way that is hard to explain.
The normal-distribution field draws from a bell curve instead (a Box–Muller transform over the same seeded stream). With a mean of 100 and a standard deviation of 15, about two values in three land between 85 and 115 and almost none fall below 55. Set the optional min and max and anything outside them is clamped to the edge, so a latency can never come out negative.
No repeats: what the Unique toggle can and cannot promise
Switch on Unique for a column and the generator redraws a value it has already produced, up to 100 times per row, before giving up. In a range that is large compared with the row count that is effectively a guarantee. In a range that is too small it cannot be: 200 rows of integers between 1 and 100 must repeat, and the builder reports how many values it could not make unique rather than pretending.
If you need every number in a range exactly once, in random order — a shuffled deck, a permutation — use a Row Number column instead and shuffle it in the tool you load the file into. That is a different operation from drawing random numbers, and the generator does not disguise one as the other.
A seed makes the list repeatable
Type any seed string in the builder and the same seed plus the same schema produces the same numbers on every machine. That is what makes the output usable as a test fixture: a failing assertion against row 37 fails again when a colleague regenerates the file. Leave the seed empty for a fresh list each time.
The same property is why these numbers are not suitable for anything where unpredictability matters. They come from a 32-bit seeded generator (mulberry32), not a cryptographic source: do not use them for lotteries with money at stake, raffle draws you need to defend, passwords, tokens or keys. A ranged draw also has at most 232 distinct outcomes, so a range wider than about four billion has values it can never produce.
Getting the numbers out
- Plain text in the widget above — one value per line, ready to paste into a spreadsheet column.
- CSV or Excel from the builder, with the number columns typed as numbers rather than text.
- JSON keeps them as real JSON numbers, never quoted strings.
- SQL writes them unquoted into
INSERTstatements and types the columnINTorDECIMAL.
Common questions
Are both ends of the range included?
Yes. An Integer field with min 1 and max 6 can produce 1, 6 and everything between, each equally likely. Decimal fields draw across the range and then round to the number of decimal places you set.
Can I generate random numbers without repeats?
Turn on Unique for the column. The generator redraws a duplicate up to 100 times per row, which is a practical guarantee when the range is much larger than the row count. When the range is smaller than the number of rows, repeats are unavoidable and the builder tells you how many it could not avoid.
How do I get the same random numbers again?
Enter a seed in the builder. The same seed and schema produce an identical list on any machine, which is what lets a generated file serve as a test fixture.
Can I use this for a lottery or a raffle?
Not where fairness has to be provable. The numbers come from a seeded, non-cryptographic generator so that results are reproducible; anyone with the seed can reproduce the draw. Use a cryptographic source for draws with something at stake.
How do I generate normally distributed numbers?
Use the Number (Normal Dist.) field type and set a mean and a standard deviation. Optional min and max values clamp the tails, and decimals controls rounding.
Related
- Random date generator — timestamps for the same rows, in order or at random.
- UUID generator — when the number is an identifier rather than a quantity.
- Random string generator — codes and IDs built from a pattern instead of a range.
- Basics field reference — Integer, Decimal, Normal Distribution, Row Number and Formula.
Last updated