Skip to content

Bulk UUID v4 generator

Generate one or many secure UUID v4 identifiers.

Generated locally in your browser — never transmitted or stored.
Running locallyGenerators
    Short answer

    This generates version 4 UUIDs — 128-bit identifiers with 122 random bits — in bulk, using the browser's cryptographically secure random source. A UUID's purpose is to be unique without coordination: any machine can mint one at any time without asking a central authority, and the probability of a collision is negligible. That property is what makes them the default identifier for distributed systems, offline-capable clients and database records created before a server sees them. Concretely, you would need to generate roughly 2.7 × 10¹⁸ v4 UUIDs before reaching a one-in-a-billion chance of any collision. The format is 8-4-4-4-12 hexadecimal characters, with the version pinned at position 13 and the variant bits at 17. The known weakness is database ordering: random UUIDs scatter across a B-tree index and fragment it, which is exactly the problem the time-ordered v7 format was introduced to solve.

    Overview

    About the UUID Generator

    Generate cryptographically secure UUID v4 identifiers — one at a time or hundreds at once. Built on the browser's Web Crypto API, every UUID is truly random and ready to drop into databases, APIs, or test data.

    Procedure4

    How to use the UUID Generator

    1. 01Set how many UUIDs you want to generate (1 to 500).
    2. 02Click "Generate" to create the batch instantly.
    3. 03Click any UUID to copy it on its own, or use "Copy all".
    4. 04Optionally toggle uppercase or wrap each UUID in braces.
    Capabilities4

    Why use our UUID Generator

    • 01

      Truly random

      Powered by crypto.randomUUID() so every identifier is cryptographically secure.

    • 02

      Bulk generation

      Generate up to 500 UUIDs at once and copy them all in a single click.

    • 03

      Format options

      Toggle uppercase or wrap each UUID in {braces} for SQL Server, Windows, and similar systems.

    • 04

      Private & free

      Generation happens in your browser — UUIDs are never sent to a server or logged.

    Detail

    Which UUID version should you use?

    The UUID specification defines several versions with different generation strategies. Version 1 encodes a timestamp and the machine's MAC address, which makes it sortable but leaks hardware identity and creation time. Version 3 and version 5 are deterministic hashes of a namespace and a name, useful when the same input must always produce the same identifier. Version 4 is 122 bits of random data with six bits fixed for version and variant markers, and it is the right default for the overwhelming majority of uses — it leaks nothing, requires no coordination and needs no state. Version 7, standardised in RFC 9562 in 2024, is the notable recent addition: it places a millisecond timestamp in the high bits followed by random data, so identifiers sort chronologically while remaining unpredictable. That sortability matters for database index performance, which is the main reason to consider it over version 4 for primary keys in high-write systems.

    Detail

    Collision probability, honestly

    A version 4 UUID has 122 random bits, giving about 5.3 × 10^36 possible values. The chance of a collision follows the birthday problem, and the practical numbers are reassuring in a way that is worth stating concretely: generating a billion UUIDs per second for a hundred years produces roughly a one in two billion chance of a single duplicate. For any realistic application the risk is not worth engineering against. The caveat is that this depends entirely on the randomness being genuine. UUIDs generated from a weak or poorly seeded pseudo-random source can and do collide, and there are documented incidents of exactly that in systems using Math.random() or a badly initialised generator. This tool uses crypto.getRandomValues(), which draws from the operating system's cryptographically secure entropy pool, so the theoretical numbers apply. If you are generating UUIDs elsewhere, checking which random source is behind them is worth the two minutes.

    Detail

    UUIDs as database keys, and when not to use them

    The common architectural question is whether to use a UUID or an auto-incrementing integer as a primary key. UUIDs win when identifiers must be created without a round trip to the database — offline-first clients, distributed services, event sourcing, or any case where merging data from multiple sources must not produce key conflicts. They also avoid leaking business information: a sequential integer in a URL tells anyone how many records you have and lets them enumerate them, while a UUID does not. The costs are real though. A UUID is 16 bytes against 4 or 8 for an integer, which enlarges every index that references it, and random version 4 values scatter inserts across the index rather than appending to the end, causing page splits and degrading write performance on large tables. Version 7 addresses precisely that by making values time-ordered. A common compromise is an internal integer key for storage efficiency plus an external UUID for public references.

    Reference5

    UUID versions in practice

    VersionBased onSortableTypical use
    v1Timestamp + MAC addressYesLegacy; leaks hardware and time
    v3MD5 of namespace + nameNoDeterministic identifiers
    v4122 random bitsNoGeneral-purpose default
    v5SHA-1 of namespace + nameNoDeterministic, preferred over v3
    v7Timestamp + randomYesDatabase keys in write-heavy systems

    Version 7 was standardised in RFC 9562 (2024) specifically to give random UUIDs chronological sort order.

    Questions9

    Frequently asked questions

    What is a UUID?

    A 128-bit identifier designed to be unique without central coordination. Any system can generate one independently with a negligible chance of colliding with any other.

    Which version does this generate?

    Version 4 — 122 bits of cryptographically secure random data with six bits reserved for version and variant markers.

    Can two UUIDs ever be the same?

    Theoretically yes, practically no. Generating a billion per second for a century gives roughly a one in two billion chance of one duplicate — provided the random source is genuinely secure.

    Are these generated securely?

    Yes. They use crypto.getRandomValues(), which draws from the operating system's entropy pool, rather than Math.random(), which has caused real collisions in production systems.

    Should I use a UUID as a database primary key?

    It depends. UUIDs suit distributed and offline-first systems and avoid leaking record counts. They cost more storage and, for v4, hurt insert performance on large indexed tables.

    What is UUID v7 and should I use it?

    A 2024 addition that puts a millisecond timestamp in the high bits so identifiers sort chronologically. It is worth considering for primary keys in write-heavy databases.

    Why do sequential integer IDs leak information?

    They reveal how many records exist and let anyone enumerate them by counting. A UUID in a public URL exposes neither.

    Is the UUID case-sensitive?

    No. The specification defines lowercase hexadecimal output but requires parsers to accept either case, so comparisons should be case-insensitive.

    Are the generated UUIDs sent anywhere?

    No. Generation happens entirely in your browser and nothing is transmitted or stored.

    Last updated

    UUID format and versions per RFC 9562 (2024), which supersedes RFC 4122. Generation via the Web Crypto API crypto.getRandomValues() interface.