Random Generator
UUIDs, random numbers, random strings, dice rolls, and coin flips — all generated locally with a cryptographically secure random source.
By Alex van den Berg · Last reviewed · How we test our tools
UUID v4 Generator
Random Number
Random String
Dice Roller
Total:
Coin Flip
Last: · Heads: · Tails:
Why this is "actually" random
Every value on this page — UUIDs, numbers, string characters, dice faces, coin flips — is generated using crypto.getRandomValues(), the Web Crypto API's cryptographically secure pseudo-random number generator (CSPRNG). It's seeded from OS-level entropy sources (hardware noise, timing jitter) and is the same primitive browsers use to generate encryption keys — a meaningfully stronger guarantee than Math.random(), which most browsers implement with a fast but predictable algorithm never intended to resist prediction.
All generation happens locally in your browser tab — nothing is sent to a server or logged.
Where you use each tool matters too. UUIDs are the standard choice for database primary keys and distributed-system identifiers precisely because they can be generated independently on different machines with essentially zero collision risk — no central counter or coordination needed, unlike auto-incrementing integer IDs. The random string generator is a good fit for API tokens, temporary passwords, or test fixture data, and its character-set toggles let you match whatever a target system requires (some legacy systems reject symbols in generated tokens, for instance). Dice and coin flips exist mainly for games and quick decisions, but they run through the exact same CSPRNG as the security-sensitive tools above, so there's no meaningful difference in randomness quality between "for fun" and "for a database key" on this page.
Frequently Asked Questions
Is this random number generator truly random?
It uses the browser's crypto.getRandomValues() API, which draws from a cryptographically secure pseudo-random number generator (CSPRNG) seeded by the operating system — the same source used for generating encryption keys. This is far stronger than Math.random(), which is not designed to be unpredictable.
What is a UUID and why does it look like that?
A UUID (Universally Unique Identifier) is a 128-bit number formatted as 32 hex digits in five groups, e.g. 550e8400-e29b-41d4-a716-446655440000. Version 4 UUIDs are generated from random bits, and the odds of two randomly generated UUIDs colliding are astronomically small — safe to use as a database key without checking a central registry.
Can I use these dice rolls for board games?
Yes. Each die roll is an independent, uniformly random pick from 1 to 6, generated the same way as the number generator above, so it behaves like a fair physical die.
Is crypto.getRandomValues() overkill for a coin flip?
For a casual game, sure — Math.random() would look identical to the eye. But using the same CSPRNG for every tool on this page, including the ones where randomness quality genuinely matters like UUIDs and passwords, means there's only one random source to trust rather than switching implementations depending on the stakes.
Why would I need more than one UUID at a time?
Bulk generation is useful for seeding test databases, creating placeholder IDs for a batch of records before they're inserted into a real system, or generating unique keys for a set of feature flags or API tokens in one pass rather than refreshing a single-value generator repeatedly.
Does anything here get sent to a server?
No. Every value — UUIDs, numbers, strings, dice, coin flips — is generated locally in your browser with JavaScript. Nothing is transmitted or logged anywhere.