UUID ジェネレーター
ランダムなv4 UUIDを即座に生成。単体またはバッチ生成対応、ワンクリックでコピー。無料、ブラウザー内で処理、サーバー不要。
- ブラウザ内で処理
- データはブラウザ外に出ません
- 無料 · 登録不要
WeChat でスキャンしてシェア
例・詳しい説明・よくある質問 実際の出力つきの例、ほかのツールとの違い、よくある質問。
PostgreSQL の UUID 関数と見比べる
PostgreSQL 18 のマニュアル(9.14 UUID Functions)では、gen_random_uuid() と uuidv4() がバージョン 4、uuidv7() がバージョン 7 の UUID を返すと書かれています。マニュアルに載っている出力例を、このツールの値と同じ方法で読んでみます。読み方は簡単で、ハイフンを除いた 13 桁目がバージョン、17 桁目を 2 進数にしたときの先頭 2 ビット 10 が RFC 9562 のバリアントです。
5b30857f-0bfa-48b5-ac0b-5c64e28078d1
^ ^
4 a = 1010
gen_random_uuid() の例は 13 桁目が 4 で、このツールの出力と同じ形式です。PostgreSQL の uuid 型の列にそのまま入れられます。
019535d9-3df7-79fb-b466-fa907fa17f9e
^ ^
7 b = 1011
uuidv7() の例は 13 桁目が 7 です。v7 は先頭 48 ビット(12 桁)が Unix 時刻のミリ秒なので、ID から作成時刻を取り出せます。
先頭 12 桁 019535d9 3df7 を 10 進数に直すと 1740365184503 ミリ秒、つまり 2025-02-24 02:46:24.503 UTC で、日本時間では 2025-02-24 11:46:24.503 です。マニュアルの uuid_extract_timestamp() の例は 2025-02-23 21:46:24.503-05 と表示されていますが、これは UTC−5 で表示した値で、同じ瞬間を指しています。タイムゾーンを日本に設定したデータベースでは +09 で表示されます。
同じマニュアルによると、uuid_extract_timestamp() はバージョン 1 と 7 以外では null を返し、uuid_extract_version() は gen_random_uuid() の値に 4 を返します。このツールの v4 には時刻が入っていないので、作成日時を残したいなら別の列に記録してください。
衝突はどれくらい起こりにくいか
v4 の乱数は 122 ビットで、取りうる値は 2122 通りです。誕生日問題の近似で、n 個生成したときにどれか 2 つが一致する確率は p = 1 − e−n²/(2 × 2122) です。10 億個(109)作った場合を計算すると次のとおりです。
p ≈ 9.4 × 10^-20
実際に重複が起きるのは、テストデータに UUID を固定で書いたまま本番に流した、同じ値を 2 つのレコードにコピーした、といったプログラムの誤りがほとんどです。
バッチ生成と大文字・小文字
- 数量は 1〜100 です。小数は切り捨て、0 や負の数は 1、空欄や数値でない入力は 5 として扱います。
- 「すべてコピー」はバッチ全体を 1 行 1 件でコピーし、「コピー」は上の単体の値だけをコピーします。
- 「クリア」はバッチだけを消します。ツール内で Ctrl/Command+L を押すと単体とバッチの両方を消し、数量の設定は残ります。
- 出力は小文字です。大文字を求めるシステムには、コピーしてから変換してください。RFC 9562 では大文字と小文字は同じ値として扱われます。
制限
- 生成するのはバージョン 4 だけです。大文字、ハイフンなし、波かっこ付き、
urn:uuid:形式の出力オプションはありません。 - 1 回のバッチは最大 100 件です。
crypto.randomUUID()が必要です。Chrome と Edge は 92 以降、Firefox は 95 以降、Safari は 15.4 以降で使えます(MDN のブラウザー互換性データ)。それより古いブラウザーでは UUID が表示されません。- 貼り付けた UUID の検証や解析はしません。上の読み方は手作業です。
FAQ
UUIDとは何ですか?
UUID(Universally Unique Identifier、RFC 9562)は 128 ビットの値で、16 進数 32 桁を 5 つのグループに分けて書きます。バージョン 4(v4)は 128 ビットのうち 122 ビットが乱数なので、別々に生成した 2 つの値が一致することは実際上ありません。
生成されるUUIDは本当にランダムですか?
はい。Web Crypto API の crypto.randomUUID() を使っており、ブラウザーに組み込まれた暗号論的に安全な乱数生成器から値を得ています。Math.random() は使いません。
UUIDのフォーマットは何ですか?
xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx です。13 桁目は常に 4(バージョン)、17 桁目の y は 8・9・a・b のいずれか(RFC 9562 のバリアント)で、それ以外の桁はランダムです。ツールは小文字で出力します。RFC 9562 の 4 章は大文字・小文字・混在のどれも認めているので、受け取る側は 3 通りとも受け付ける必要があります。
一度にいくつ生成できますか?
1 回のバッチで最大 100 件です。100 を超える数は 100、1 未満は 1、空欄や数値でない入力は 5 として扱います。数量はこのブラウザーに記憶されますが、生成した UUID 自体は保存しません。
データベースの主キーには v4 と v7 のどちらを使うべきですか?
v7 はミリ秒単位のタイムスタンプで始まるため、新しいキーが古いキーの後ろに並び、B-tree インデックスへの挿入が末尾に集まります。v4 は完全にランダムで挿入がインデックス全体に散らばりますが、作成時刻は分かりません。このツールが生成するのは v4 だけです。
生成した UUID はどこかに送信・保存されますか?
されません。crypto.randomUUID() はこのブラウザーのタブの中で動き、値は ZeroTool に送られず、ページを離れると残りません。ページが保存するのはバッチの数量だけで、このブラウザーのローカルストレージに入ります。ページの Google Analytics は「生成」や「バッチ生成」を押したことだけを記録し、UUID の値は含みません。