Two UUID versions, generated two different ways
The generator produces UUIDs in two of the format's several versions: v4, built from random values, and v1, built from the current timestamp. Both output the same visual shape — five groups of hexadecimal digits separated by hyphens, 32 hex characters total — but the bits inside those groups are derived completely differently, and which one to use depends on whether you need an identifier that reveals when it was created.
Version 4: where every bit but two comes from Math.random()
Every hex digit in a v4 UUID is drawn from JavaScript's Math.random(), except for two fixed markers: the first digit of the third group is always 4, marking the version, and the first digit of the fourth group is constrained to 8, 9, a, or b, marking the RFC 4122 variant. A generated UUID like a19b3486-0987-4b79-b79c-9f61f9fedd7a shows both: the 4 opening the third group, and the b opening the fourth. Because Math.random() is not a cryptographically secure random source, these UUIDs are suitable as unique identifiers but should not be relied on as unpredictable secrets — a session token or API key needs a CSPRNG, not this.
Version 1: timestamp-derived, but not a real MAC address
A v1 UUID packs the current time into its first three groups and sets its own version marker — 1 this time, opening the third group, as in 312e6dd0-a920-11f1-b48e-52d20c9b54ae. The fourth group carries a random clock sequence with the RFC variant bits set, and the fifth group — normally a network card's MAC address in the original v1 specification — is generated here as six random bytes instead, since a browser has no MAC address to read. The upshot: the version and variant markers are spec-correct and the value is time-derived, but the exact creation timestamp is not cleanly recoverable from the output the way a spec-pure v1 implementation would allow, and the trailing group is not a real hardware identifier.
Bulk generation and copying
The quantity slider generates between 1 and 100 UUIDs in a single batch, all of the selected version. Each row can be copied individually, or the whole batch can be copied at once as a comma-separated list — useful for pasting a set of test IDs directly into a spreadsheet column or a SQL VALUES clause.
When a UUID is — and is not — the right identifier
UUIDs solve a specific problem: generating unique IDs across multiple systems without a central counter or database round-trip, which is why they work well as primary keys in distributed systems, session or transaction identifiers, and file names that must never collide. They are a poor choice when you need a human-readable, sortable, or short identifier — a 36-character string sorts by nothing meaningful and no one will type one from memory — and v4 in particular should never stand in for a security token, since its randomness comes from Math.random(), not a cryptographic source.