Generate numbers that anyone can reproduce from the same seed. Publish the seed before a draw and the result becomes checkable by anyone, which is what turns a private roll into a verifiable one. Uses a documented xoshiro128** generator rather than a hidden one.
Settings
Recent results
Generated locally in your browser β your settings and results never leave this page.
Reproducible is not the same as fake
A seeded generator is a real random number generator with one property added: it starts from a value you choose, so the sequence it produces can be regenerated on demand. The numbers still pass the statistical tests for randomness β they are evenly distributed, uncorrelated, and show no visible pattern. What they are not is unpredictable to somebody holding the seed.
That single difference decides where the tool belongs. It makes seeded output perfect for anything that needs to be checked afterwards, and unsuitable for anything that needs to stay secret.
The verification problem
Consider an online giveaway. The organiser says the winner was drawn at random. Entrants have no way to check. The organiser could have run the draw twenty times and published the result they preferred, and nothing in the announcement would look any different.
Publishing the seed in advance closes that gap. Once the seed is public and the entry list is public, anyone can run the draw themselves and confirm the same winner comes out. The organiser no longer has to be trusted, because the result can be independently reproduced.
The order matters. A seed published after the entries are known allows the organiser to search for a seed that produces a favourable result. Announcing it first β or better, tying it to a public value that will not exist until after entries close β removes that possibility.
Reproducible failures in testing
Random test data finds bugs that fixed fixtures never reach, because it explores combinations nobody thought to write down. Its weakness is that a failure disappears the next time the suite runs, leaving a report of something that broke once and cannot be examined.
Seeding fixes this. Record the seed with the failure and the exact dataset can be regenerated on demand: the developer investigating sees precisely what the machine saw. This is standard practice in property-based testing, where the framework prints the seed on failure for exactly this reason.
What the generator actually is
This tool uses xoshiro128**, seeded through splitmix32 so that even a short or similar-looking seed produces a well-mixed starting state. Both algorithms are published and widely implemented.
Using a documented generator rather than an ad-hoc one is not a detail. A reproducibility claim is only worth anything if somebody else can reimplement the method and confirm the result. An undocumented generator makes the claim unverifiable in principle, however honest the intention.
Where not to use it
Never for passwords, API tokens, session identifiers, encryption keys or anything else whose value must be unguessable. The seed is usually short and often memorable, which makes the entire output space small enough to search. A seeded generator used for a secret is a secret with a much shorter effective key than it appears to have.
The secure number generator elsewhere in this section exists for those cases and deliberately offers no seeded mode at all.
Privacy
Numbers are generated in your browser. The seed and settings appear in the page link so a draw can be shared and reproduced; nothing is uploaded or stored.
Recording the seed with the result
A seed only helps if it survives alongside whatever it produced. A test failure reported without its seed is as unreproducible as one that never had a seed at all, and a published draw whose seed was lost cannot be checked by anyone.
The practical habit is to store the seed in the same place as the output. Test frameworks that use random data print the seed on failure for exactly this reason. For a draw, the seed belongs in the announcement itself rather than in a message somewhere that might not be findable later.
This tool puts the seed and settings into the page link, so sharing the link shares everything needed to reproduce the result. That is the whole reproducibility chain in one place.
How to use the Seeded Random Number Generator
- Enter a seed β any word or number. Publish it beforehand if the draw needs to be checkable.
- Set the range, how many numbers you need, and whether repeats are allowed.
- Generate. The same seed and settings will always produce these numbers again.
Frequently asked questions
What is a seed?
The starting value for a deterministic random generator. Given the same seed, the generator produces exactly the same sequence every time. It is not a password or a secret β it is closer to a reference number that lets anyone reproduce your result.
Why would I want reproducible random numbers?
Two main reasons. In testing, a failure caused by random data is only fixable if you can regenerate the data that broke it. In public draws, publishing the seed in advance lets entrants verify afterwards that you did not re-run the draw until you liked the answer.
Which generator does this use?
xoshiro128**, seeded through splitmix32. Both are published, well-studied algorithms rather than something invented here, which matters β a reproducibility claim is only meaningful if the method is documented well enough for someone else to implement it.
Is a seeded number as random as a cryptographic one?
It passes statistical tests for randomness, but it is not unpredictable: anyone holding the seed can compute every value you will get. That is the entire point of the tool, and it is exactly why it must not be used for passwords, tokens or anything that has to be unguessable.
Does the same seed give the same numbers on a different device?
Yes. The generator is fully specified, so the same seed and settings produce the same output in any browser on any machine. That is what makes the draw checkable by someone else.
What makes a good seed for a public draw?
Something nobody could have chosen after seeing the entries β and ideally something that did not exist beforehand either. A future date, a stock index close, or a well-known public value announced after entries closed all work. A seed you picked privately proves nothing.
Does changing the settings change the result?
Yes. The seed fixes the stream of random values, but the range, count and options decide how those values are used. Reproducing a draw means matching the settings as well as the seed, which is why the tool puts them in the page link.