UUID Generator
Produce random version 4 UUIDs using your browser's cryptographic random number generator, one at a time or several hundred at once.
100% private — everything runs in your browser, nothing is ever uploaded.
What this tool does
A database migration needs three hundred unique identifiers for seed rows, or a test fixture needs a fresh set of keys that will not collide with production data. Version 4 UUIDs are 128-bit random values, and generating them by typing plausible-looking strings is a bad habit that eventually produces duplicates. This tool uses your browser's cryptographic random source to produce one or several hundred v4 identifiers at once, with options for upper case or dash-free output when a target system is picky about format. It is handy for seeding a development database, creating correlation IDs for log testing, or producing temporary keys for a local script. The identifiers are random, not sequential, so they do not reveal how many records exist or in what order they were created.
How to use it in three steps
- Set how many identifiers you need. A single one is fine for a quick test; a few hundred is more useful when preparing seed data.
- Choose upper case or no dashes only if the system consuming them requires that format. Otherwise the standard lower-case, dashed form is the safest default.
- Press Generate, copy the list, and keep it somewhere your test can read. Generate a fresh set for each run so fixtures never share keys across environments. Store the generated list with your fixture data so another run does not silently reuse the same keys.
Questions people ask
Are these really random enough to avoid collisions?
Version 4 UUIDs use 122 bits of randomness, so the chance of an accidental collision across realistic datasets is negligible. They are generated with the browser's cryptographic random number generator rather than a predictable counter.
Should I use UUIDs as database primary keys?
They work well when records are created in multiple systems or you do not want to expose sequence numbers in URLs. In a single database, sequential integer keys are usually more compact and index-friendly; pick based on how the data is created.
Do the format options change the identifier's value?
No. Upper case and dash-free are presentation choices for systems with strict input validation. Converting between the forms later keeps the same underlying identifier, so you can match records across systems that display them differently.
Can I generate identifiers that sort by creation time?
Version 4 UUIDs are random and deliberately do not encode a timestamp, so they will not sort chronologically. If ordering by creation time matters for your index, use a time-sortable identifier scheme instead; if opacity matters, the randomness here is the point.
Privacy: Identifiers are generated inside your browser using its cryptographic random source, and the resulting list is displayed only to you without being sent to or stored on a server.
How to use it
- Set how many identifiers you need.
- Choose upper case or no dashes if the target system requires it.
- Press Generate and copy the list.
Why it stays private
Identifiers are often created for internal systems before anything is announced, and a sequence of UUIDs can reveal how much data a system holds. Generating them locally keeps that signal private.
Questions
Are these really random?
Yes. They come from the browser's cryptographic random source, the same one used for encryption keys, not from a predictable pseudo-random generator seeded by the clock.
What is a version 4 UUID?
A 128-bit identifier defined by RFC 4122 with the version field set to 4 and the variant field set correctly, meaning all the randomness comes from those random bits. The standard textual form is 36 characters including four hyphens.
Could two UUIDs ever collide?
In practice, no. There are about 3.4 × 10^38 version 4 UUIDs. To reach even a one-in-a-billion chance of a collision you would need to generate around 10^14 of them.