デジタル道具屋
デジタル道具屋

UUID/GUID 生成 (UUID Generator)

一意の識別子(UUID v4)を一括生成

Version:
Count:

UUID生成ツールの使い方

必要な個数(1〜100個)を指定するだけで、ランダム方式のUUID(バージョン4)をまとめて生成できます。生成にはブラウザ標準の crypto.randomUUID() を使っており、値はお使いの端末内で作られ、サーバーへの送信や保存は行いません。データベースの主キーやテストデータの識別子、ファイル名やリクエストIDの候補づくりなどに利用できます。

1

生成数の設定

Count 欄に生成したい個数を入力します。1〜100の範囲で指定でき、範囲外の値や数値以外を入力した場合は自動的に1または100に丸められます。個数を変えると、その時点で全件が新しい値に作り直されます。

2

再生成

「再生成」ボタンを押すたびに、指定個数のUUIDが新しい値で生成し直されます。ページを開いた直後にも既定の5個が自動で生成されます。

3

コピー

「コピー」ボタンで全件を改行区切りでクリップボードにコピーできます。各行にマウスを重ねると右端に現れる小さなアイコンを押すと、その1件だけをコピーできます。

DEEP DIVE

UUID v4 の構造とビット配置(RFC 9562)

UUID は128ビット(16バイト)の値を、32桁の16進数と4つのハイフンで 8-4-4-4-12 桁に区切って表記します。v4 では128ビットのうち6ビットがバージョンとバリアントの識別に固定され、残りの122ビットが乱数です。

xxxxxxxx-xxxx-4xxx-Nxxx-xxxxxxxxxxxx (x = 乱数の16進1桁、N = 8・9・a・b のいずれか)
位置桁数(ビット)内容
1グループ目8桁(32ビット)すべて乱数
2グループ目4桁(16ビット)すべて乱数
3グループ目4桁(16ビット)先頭4ビットがバージョン番号(v4 なら 0100 = 16進の 4)。残り12ビットが乱数
4グループ目4桁(16ビット)先頭2ビットがバリアント(RFC 準拠を示す 10)。このため先頭桁は 8・9・a・b のいずれかになり、残り14ビットが乱数
5グループ目12桁(48ビット)すべて乱数

乱数ビットの合計は 32 + 16 + 12 + 14 + 48 = 122ビットです。 生成された値が本当に v4 かどうかは、3グループ目の先頭が 4、4グループ目の先頭が 8〜b であることを目視で確認できます。 なお、すべてのビットが 0 の 00000000-0000-0000-0000-000000000000 は Nil UUID、すべて 1 の ffffffff-ffff-ffff-ffff-ffffffffffff は Max UUID として RFC 9562 で特別に定義されており、このツールの通常出力には現れません。

一次情報:RFC 9562: Universally Unique IDentifiers (UUIDs)(2024年に旧 RFC 4122 を置き換えた現行仕様)、MDN: Crypto.randomUUID()(このツールが利用しているブラウザ API の解説)

DEEP DIVE

UUID v1 / v4 / v7 の比較

RFC 9562 では v1〜v8 の8種類が定義されています。実務でよく比較される3つを、生成方式・時刻順の並べ替え可否・向いている用途で整理しました。このツールが生成できるのは v4 だけです。

バージョン生成方式時刻順ソート特徴・向いている用途
v11582年10月15日起点の100ナノ秒単位タイムスタンプ(60ビット)+クロックシーケンス+ノードID(慣例的に MAC アドレス)不向き(時刻の下位ビットが先頭に来るため文字列順と時刻順が一致しない)古いシステムとの互換。ノードIDから生成端末が推測できる点が敬遠される理由になっている
v4(本ツール)122ビットの乱数不可(順序情報を持たない)汎用の識別子。生成時刻や端末の情報を含まず、値から何も推測されにくい。索引の断片化には不利
v7Unix 時刻のミリ秒(48ビット)を先頭に置き、残り74ビットを乱数などで埋める可(先頭48ビットが時刻なので文字列順がほぼ生成順になる)データベース主キー、ログやイベントの ID。生成時刻がおおよそ読み取れる点は用途により注意

v7 は RFC 9562 で新しく標準化されたバージョンで、時刻順に並ぶことで B-tree 索引への挿入が末尾付近に集中し、v4 の断片化問題を緩和します。 ただしブラウザの crypto.randomUUID() は v4 のみを返すため、v7 が必要な場合は各言語の UUID ライブラリを使うことになります。 v3 と v5 は名前空間と名前からハッシュ(MD5 / SHA-1)で決定的に作る方式で、同じ入力からは常に同じ UUID が得られる点が上記3つと異なります。

実際の使用例

既定の5個をそのまま生成する

ページを開いた直後の状態です。出力は 8-4-4-4-12 桁の36文字で、3番目のグループの先頭が必ず 4、4番目のグループの先頭が 8・9・a・b のいずれかになります(値は生成のたびに変わるため一例です)。

INPUT

Count: 5
(ページ表示時に自動生成)

OUTPUT

b2a89b3f-e3ae-4114-be1d-23cf4d26c90e
3265df29-3d7a-4207-a540-4d805a482780
cf619774-a185-40a9-bcb6-dad2ddaddeba
338fa7e7-e471-4fef-b136-d0acfd50e700
b8f7674f-4c34-405d-80ac-74ef49513f7e

範囲外の個数を入力した場合

Count 欄は 1〜100 に丸められます。数値として解釈できない入力は 1 として扱われます。

INPUT

Count: 200
Count: 0
Count: abc

OUTPUT

→ 100個生成(上限に補正)
→ 1個生成(下限に補正)
→ 1個生成(数値でない入力は 1 扱い)

3個生成して一括コピーする

「コピー」ボタンを押すと、表示中の全件が改行区切りの1つのテキストとしてクリップボードに入ります。行番号や余分な空白は含まれません。

INPUT

Count: 3 → 「コピー」

OUTPUT

cf619774-a185-40a9-bcb6-dad2ddaddeba
338fa7e7-e471-4fef-b136-d0acfd50e700
b8f7674f-4c34-405d-80ac-74ef49513f7e

よくある質問

このツールで生成できるUUIDのバージョンは何ですか?

バージョン4(ランダム方式)のみです。ブラウザ標準API の crypto.randomUUID() が返す値は v4 に固定されているため、時刻を元にする v1 や、時刻順に並べ替えられる v7 には対応していません。画面の Version 欄に v4 しか表示されないのはこのためです。v1・v4・v7 の違いは下の比較表にまとめています。

生成したUUIDが他の値と重複することはありますか?

v4 UUID は128ビットのうち122ビットが乱数で、取りうる値は約5.3×10の36乗通りあります。誕生日のパラドックスに基づく概算では、衝突確率が50%に達するのは約2.7×10の18乗個を生成した時点で、1兆個(10の12乗)生成しても衝突確率は10のマイナス13乗程度です。ただしこれは「確率的に極めて低い」という意味であり、重複しないことを保証する仕組みではありません。一意性が業務上欠かせない場合は、保存先のデータベースで一意制約を設けるなど、別の手段を併用してください。

UUIDとGUIDは同じものですか?

実質的に同じ形式を指します。GUID(Globally Unique Identifier)は Microsoft 製品で使われてきた呼び名で、.NET の Guid 型や Windows のレジストリでは中括弧付きの {xxxxxxxx-xxxx-...} という表記が使われることがあります。標準仕様である RFC 9562 では UUID という名称で定義されており、このツールは中括弧なし・小文字16進数の RFC 表記で出力します。中括弧が必要な場合は貼り付け先で付け足してください。

大文字で出力することはできますか?

このツールの出力は小文字固定です。RFC 9562 では、16進数の a〜f を出力時は小文字で書き、入力時は大文字小文字を区別せず受け付けるべきとしています。そのため多くのライブラリやデータベースは小文字のまま扱えます。表示上どうしても大文字が必要な場合は、生成した値をケース変換ツールで変換してください。

Math.random() で作るUUIDと何が違いますか?

crypto.randomUUID() は Web Crypto API の一部で、暗号学的に安全な乱数生成器から値を得るよう仕様で定められています。一方 Math.random() は予測可能性のある擬似乱数で、生成元の状態が推測できると次の値を予測できる場合があるため、識別子の生成には不向きとされています。ただし、UUID を秘密の認証トークンとして使うかどうかは乱数の品質とは別の設計判断であり、このツールが何かを保証するものではありません。

HTTPで配信されたページでは動作しないと聞きましたが本当ですか?

本当です。crypto.randomUUID() は secure context(HTTPS で配信されたページ、または localhost)でのみ利用できると定義されています。当サイトは HTTPS で配信しているため通常は問題ありませんが、ページをローカルに保存して http:// や file:// で開いた場合などは、この関数が存在せずエラーになります。

生成したUUIDはどこかに記録されますか?

いいえ。生成もコピーもお使いのブラウザ内で完結し、値がサーバーに送信されたり保存されたりすることはありません。裏を返すと、ページを再読み込みしたり Count を変更したりすると以前の値は失われ、同じ値を再現する手段もありません。控えておきたい値はその場でコピーして保存してください。

役立つTips

データベースの主キーに使うと索引が断片化しやすい

v4 は値が完全にランダムなので、挿入位置が B-tree 索引の全体に散らばります。InnoDB のように主キー順にデータを格納するデータベースでは、大量挿入時の書き込み性能に影響することがあります。RFC 9562 が時刻順に並ぶ v7 を追加した動機の一つがこの問題で、挿入順が重要なら v7 対応のライブラリも検討してください。

ハイフン無しの32桁が必要なシステムもある

Oracle の RAW(16) 列や一部の外部 API では、ハイフンを除いた32桁の16進数を要求されることがあります。このツールは常にハイフン付きの36文字で出力するので、必要に応じて貼り付け先でハイフンを削除してください。

一括コピーは改行区切りで貼り付けられる

「コピー」ボタンは各UUIDを改行で連結するので、スプレッドシートに貼り付けるとそのまま1行1件で入ります。CSV の1列として使う場合も、そのまま貼るだけで済みます。

Count を変えただけでも全件が作り直される

個数の変更は再生成と同じ扱いで、表示中の値はすべて新しい値に置き換わります。特定の値を残したい場合は、個数を変える前にその値をコピーしておいてください。

関連ツール