UUID Generator
Generate unique UUID values.
How to Generate UUIDs
Choose how many you need
One UUID or a whole batch for seeding databases.
Generate instantly
Cryptographically random v4 UUIDs are created in your browser.
Copy individually or all at once
Grab a single ID or the whole list with one click.
What a version 4 UUID is
A UUID is a 128-bit identifier written as 32 hexadecimal digits in five groups. Version 4 means almost all of those bits are random: 122 of them, with the remaining six fixed to mark the version and variant.
That design has one purpose โ letting separate systems create identifiers independently, with no coordination, and be confident they will never collide. No central authority, no database sequence, no lock.
Why collisions do not happen in practice
122 random bits is about 5.3 undecillion possibilities. To reach a one-in-a-billion chance of a single collision you would need to generate roughly 100 trillion UUIDs. At a million per second, that is several years of continuous generation for a probability that remains negligible.
The important caveat is that this depends entirely on the randomness being good. A weak random source destroys the guarantee completely. This generator uses the browser's built-in cryptographic UUID function, which draws from the operating system's entropy rather than an ordinary random number routine.
A UUID is not a secret
Version 4 UUIDs are unpredictable, which tempts people to use them as access tokens โ an unguessable link to a document, for instance. They are unguessable, but they are also not designed as credentials: they get logged by servers and proxies, appear in browser history, and leak through referrer headers.
For anything that grants access, use a purpose-built token with an expiry and the ability to revoke it. Use UUIDs to identify things, not to authorise access to them.
The database cost nobody mentions
Random UUIDs make poor primary keys in databases that store rows in index order. Because each new value lands in a random position, inserts scatter across the index instead of appending, which fragments pages and slows writes on large tables. They are also four times the size of a 32-bit integer, in every index that references them.
This is why time-ordered identifiers exist โ UUID version 7 and similar schemes keep global uniqueness while sorting roughly by creation time. If you are choosing a key for a table that will grow large, that trade-off is worth knowing before the table is large.
Formatting and generation
The canonical form is lowercase hexadecimal with hyphens. Comparisons should be case-insensitive, since some systems emit uppercase, and stripping hyphens for storage is common but must be done consistently โ half a system storing 32 characters and half storing 36 is a reliable source of lookups that mysteriously fail.
Generation happens entirely in your browser with no server involved, so nothing about what you generated is recorded anywhere.
The other versions, and when they matter
Version 4 is the random one and the default answer for almost everything. Version 1 encodes a timestamp and the machine's network address, which makes it sortable but leaks where and when it was created โ a genuine privacy consideration that led to it falling out of favour. Versions 3 and 5 are deterministic: the same input name always produces the same UUID, which is useful for deriving a stable identifier from something you already have.
Version 7 is the recent addition worth knowing about. It puts a millisecond timestamp in the high bits and randomness in the rest, so identifiers sort by creation time while staying unguessable and globally unique โ which solves the database index problem without giving up the properties that made UUIDs attractive.