What this does
A version 7 UUID starts with a 48-bit Unix millisecond timestamp, followed by the version nibble 7, 12 bits of rand_a, the 2-bit variant and 62 bits of rand_b, 74 random bits in all (12 + 62), inside the same 128-bit, 36-character frame as v4. Because the timestamp comes first and fixed-width hex keeps numeric order, v7 IDs sort by creation time as plain strings. Press Generate below; each ID is assembled from Date.now() and crypto.getRandomValues() on your device.
Two numbers follow from the layout. 48 bits of milliseconds cover 2⁴⁸ ≈ 2.8 × 10¹⁴ ms, or 8,919 Julian years (2⁴⁸ ÷ 31,557,600,000 ms per year), so the timestamp field overflows on 2 August 10889. And 74 random bits give 2⁷⁴ ≈ 1.9 × 10²² distinct values per millisecond: a batch of 1000 minted in the same millisecond has 1000 × 999 ÷ 2 = 499,500 pairs, for a collision probability near 499,500 ÷ 2⁷⁴ ≈ 2.6 × 10⁻¹⁷.
When it goes wrong
If a v7 batch does not sort into generation order, the generator is skipping RFC 9562 section 6.2: this page uses rand_a as a 12-bit counter, reseeded below 2¹¹ whenever the millisecond changes and incremented for every further ID in that millisecond, so sorted output equals generation order. If the third group starts with 4 instead of 7, you generated v4: switch the version toggle above. If the timestamp decoded from the first 12 hex digits looks wrong, suspect the device clock: v7 trusts Date.now(), so a machine set to the wrong time mints IDs from that wrong time. A count outside 1 to 1000 is clamped to the nearest limit.