Free Tools Grid

UUID Generator

Developer Tools

Generate cryptographically secure UUIDs in v4 (random) and v7 (time-ordered) formats, plus ULIDs — in bulk, with format controls and one-click copy or download.

Runs entirely in your browser
Loading tool...

About UUID Generator

UUIDs (Universally Unique Identifiers) are 128-bit identifiers used wherever you need a globally-unique ID without a centralized counter: database primary keys, distributed tracing, file names, idempotency tokens, session IDs, and more. The two most useful variants today are v4 (purely random — what most systems still use) and v7 (a recent standard that puts a timestamp in the high bits so IDs sort chronologically, which dramatically improves database index performance).

This generator produces both, plus ULIDs (a similar Crockford-base32-encoded time-ordered ID format popular outside the strict UUID spec). All randomness comes from the browser's `crypto.getRandomValues` and `crypto.randomUUID` APIs — the same primitives used by WebAuthn and password managers, never `Math.random`. Generate up to 1,000 at once, format with or without hyphens, in upper or lower case, optionally wrapped in braces (the Microsoft GUID style), and export as plain text or JSON.

How to use

  1. 1

    Pick the variant

    Use the tabs to choose UUID v4 (purely random), UUID v7 (time-ordered, good for DB sort), or ULID (Crockford-base32 time-ordered).

  2. 2

    Set how many to generate

    Drag the Count slider or type a number (1–1000) in the input next to it. Click Regenerate any time to roll new IDs.

  3. 3

    Adjust formatting (UUIDs only)

    Toggle Uppercase, Wrap in braces, or Hyphens on/off. The output list updates instantly. ULIDs have a fixed format and ignore these toggles.

  4. 4

    Copy or download

    Use Copy all to grab the whole list as newline-separated text, or Download as .txt / .json. Each row also has its own copy button.

Examples

Single UUID v4

Output

550e8400-e29b-41d4-a716-446655440000

UUID v7 (time-ordered)

The first 6 bytes encode milliseconds since epoch — UUIDs generated in sequence sort chronologically.

Output

018f1234-5abc-7def-8123-456789abcdef

ULID

26 characters, Crockford base32, lexicographically sortable.

Output

01HX5G9Z2YHQDMC0X6XK0VBRTM

Frequently asked questions

What's the difference between UUID v4 and v7?+

v4 is purely random — great for uniqueness, terrible for sorting. v7 puts a millisecond timestamp in the first 48 bits, so v7 UUIDs generated in order are also lexicographically and chronologically sortable. v7 is the better default for new databases because B-tree indexes love sequential keys.

Should I use UUID v7 or ULID?+

They're nearly equivalent — both are 128-bit, time-ordered, and crypto-random. UUID v7 is now a proper standard (RFC 9562) and fits anywhere a UUID is expected. ULID is more compact in string form (26 chars vs 36) and uses Crockford base32 (no ambiguous I/O/L/U). Pick UUID v7 unless you specifically need ULID's string format.

How random are these?+

Cryptographically random. v4 uses `crypto.randomUUID()` (or `crypto.getRandomValues` as a fallback), the same primitive WebAuthn relies on. v7 and ULID use `crypto.getRandomValues` for the random portion. There's no measurable bias and no predictability.

What's the collision probability?+

For UUID v4, you'd need to generate billions of UUIDs before having a 1-in-a-billion chance of collision. v7 keeps the same randomness in its random bits (74 bits of randomness per v7 UUID), still effectively collision-free at any practical scale. ULID has the same property.

Can I use these as database primary keys?+

Yes — especially v7 or ULID for new tables. They sort well in B-tree indexes, keep insert performance high, and reveal less information than auto-incrementing IDs. v4 also works but inserts are slightly slower at very high write volumes due to the random index positions.

Why does v4 sometimes have a digit position that's always 4 or 8/9/a/b?+

Those positions encode the version (the '4' in v4) and the variant (the high bits of position 19, restricted to 8, 9, a, or b). They're not random — they identify the UUID as v4. Same idea for v7, but with a '7' in the version position.