Random Number & Data Generator at a glance
- What it does
- Generate random numbers in a range, pick from a list, roll dice and produce test data using your browser cryptographic random source.
- Where it runs
- Entirely in your browser — no data is uploaded
- Works offline
- Yes, once the page has loaded
- Cost
- Free, with no account and no usage limit
- Category
- Generators & Security
How to use the generator
- Choose what to generate - a number in a range, a selection from a list, or a batch.
- Set the bounds or paste your list.
- Generate, and repeat as often as you need.
Pseudo-random, cryptographic and true random
Three different things that get called "random", with genuinely different properties.
Pseudo-random generators such as Math.random() produce a deterministic sequence from a seed. Given the same seed you get the same sequence, which is a feature for simulations and reproducible tests and a serious flaw for anything an adversary cares about.
Cryptographically secure generators mix in entropy from unpredictable physical sources the operating system collects - timing jitter, hardware events, dedicated instructions. Their output cannot be predicted even given previous output. This is what crypto.getRandomValues() provides, and what this tool uses.
True random generators measure a physical process directly: radioactive decay, thermal noise, atmospheric noise. Used where the requirement is regulatory or absolute, such as licensed gambling. For everything else, a modern CSPRNG is indistinguishable in practice.
What people use it for
- Prize draws and giveaways. Paste the entrant list and pick. Take a screenshot of the result for your own records - transparency is what makes a draw defensible.
- Test data. Realistic volumes of values to exercise pagination, sorting and validation.
- Sampling. Selecting a random subset for quality checks or an audit.
- Assigning order. Randomising the running order of presentations, or who goes first.
- Games. Dice rolls, card picks, decisions when nobody can agree.
- Breaking a deadlock honestly, which is a better use of randomness than most.
Bias, and why implementation matters
The obvious way to map a random number onto a range - take a random byte and use the remainder after dividing by the range size - is subtly unfair. If the range does not divide evenly into 256, the lower values occur slightly more often. This is modulo bias, and it is a real defect in a lot of hand-rolled code.
The correct approach is rejection sampling: discard values that fall in the uneven tail and draw again. The cost is negligible and the result is uniform.
Shuffling has an equivalent trap. Sorting an array with a random comparator produces a badly non-uniform distribution, despite being a widely copied one-liner. The Fisher-Yates shuffle is the correct algorithm and is barely longer.
Random does not look random
People are poor judges of randomness in both directions. Asked to produce a random sequence, they avoid repeats - genuine random data contains runs, and a fair coin flipped twenty times will usually produce a streak of four or more.
Conversely, people see patterns in genuinely random output and conclude something is broken. Spotify famously had to make its shuffle less random, because true shuffling played the same artist twice in a row often enough that users complained the feature was faulty.
The practical implication for a prize draw: if the result looks suspicious - three winners from the same team, say - that is entirely consistent with a fair draw, which is why publishing the method beforehand is worth more than arguing about the outcome afterwards.
Frequently asked questions
Yes. It uses the browser's cryptographic random source, which is the same quality used for encryption keys. For a regulated lottery you would need a certified system, but for a giveaway this is more than sufficient.
For independent draws, yes - that is what independent means. If you need unique values, use the option that selects without replacement.
No. Cryptographic random values cannot be predicted from previous output, unlike Math.random(), whose sequence can be reconstructed from enough samples.
No. Generation and selection happen entirely in your browser, so entrant lists stay private.
Nothing you enter here leaves your browser
Random Number & Data Generator does its work in JavaScript running on your own device. The page loads once, and after that there is no upload step and no server involved — which matters here because a generated password or key is worthless the moment a third party has a copy of it.
You can verify this rather than taking our word for it: load the page, disconnect from the internet, and the tool keeps working. Our privacy policy sets out what is and is not collected, and this guide explains why the distinction matters.