FIRST CH TOOLS / 26 UUID & ULID GENERATOR

UUID (v4) & ULID 一括生成

テストデータやマイグレーション用の一意なIDを、1〜100件まとめてその場で発行します。完全なランダムの UUID v4 と、時系列でソートできる ULID のどちらでも生成でき、貼り付け先に合わせて大文字/小文字・ハイフンなし・JSON配列などの形で書き出せます。乱数はこのブラウザの暗号用乱数生成器で作られ、生成した値はどこにも送信されません。

生成する
生成件数
種類
1件の長さ
重複
生成結果
「生成する」を押すと、ここにIDが並びます。
先頭1件の内訳
部分意味

How to Use

  1. 種類を選ぶ用途で決めます。外部に見せるID・分散環境で衝突を避けたいだけなら UUID v4 を選びます。DBの主キーにして挿入順に並べたい場合や、作成日時をIDから読みたい場合は ULID です。
  2. 件数と形式を決める1〜100件を指定し、貼り付け先に合わせて形式を選びます。SQLの INSERT に流し込むなら「引用符付き」、コードに埋めるなら「JSON配列」、ハイフンを嫌うシステムなら「ハイフンを外す」を使ってください。
  3. 生成してコピー「生成する」を押すと即座に出力されます。「コピー」でまとめてクリップボードへ、「ダウンロード」でテキストファイルとして保存できます。値の作り方は下の内訳表で確認できます。

About This Tool

UUID v4 は128bitのうち122bitが乱数のIDです。バージョン(4)とバリアントに6bitを使い、残りをすべて乱数に充てます。中央のサーバーに問い合わせることなく、どの端末でも独立に発行できるのが利点で、衝突確率は現実的には無視できます(103兆個作って初めて10億分の1の確率で1組ぶつかる、という桁です)。このページの乱数は crypto.getRandomValues() =ブラウザの暗号用乱数生成器から取っています。Math.random() は使っていません。Math.random() 由来のUUIDは推測できる可能性があり、IDが推測できると困る用途では使えません。

ULID は「時刻の入ったUUID」です。26文字のうち先頭10文字が生成時刻(UNIX時間のミリ秒・48bit)、残り16文字が乱数(80bit)で、全体を Crockford's Base32 で表記します。この並びのおかげで文字列を辞書順に並べるだけで生成順に並び、IDから作成日時も読めます。Base32 の文字集合からは紛らわしい ILOU が除かれているため、口頭で伝えたり手で書き写したりしても取り違えにくくなっています。

「時系列ソート可能」は一括生成のときに壊れやすい点です。100件を同じミリ秒で作ると、素朴な実装では時刻部分が全部同じになり、後ろの乱数16文字の大小で順序が決まってしまいます(=生成順と一致しない)。このツールは ULID 仕様の単調増加(monotonic)に従い、同一ミリ秒内では乱数部を+1しながら発行します。そのため一度に100件生成しても、辞書順=生成順が保たれます。

DBの主キーとしてはULIDのほうが有利な場面が多くあります。UUID v4 は完全にランダムなので、B+treeのインデックスでは挿入位置が毎回飛び、ページ分割とキャッシュミスが増えます。ULID は時刻が先頭にあるため挿入が末尾付近に集まり、この問題が起きにくくなります。一方でULIDは生成時刻が誰にでも読めるので、作成日時を隠したいIDには向きません。用途に応じて選んでください(同じ発想を標準化したものが UUID v7 です)。

表記の揺れに注意してください。UUIDは RFC 9562 で小文字での出力が定められています(読み取りは大文字も受け付ける、という規定です)。一方 Windows の GUID は伝統的に大文字+波括弧 {…} で書かれ、MySQLの BINARY(16) 運用ではハイフンを外した32文字を使うこともあります。ULIDは逆に大文字が既定です。このツールはどの表記でも書き出せますが、1つのシステムの中では表記を1つに統一してください(同じIDが別物として扱われる典型的な事故のもとです)。

生成はすべてこのページの中で完結します。IDをサーバーで採番していないので、値が外部のログに残ることはありません。URLパラメータで直接呼び出すこともできます: /uuid/?type=ulid&count=20&format=jsontype=uuid|ulidcount=1〜100format=plain|json|csv|quotedcase=upper|lowerhyphens=0)。

From AI Agents

この生成ロジックは、MCP(Model Context Protocol)サーバー @first-ch/tools-mcpuuid_generate ツールとしても提供しており、ブラウザを使わずAIエージェントから直接呼び出せます。テストデータの作成やマイグレーションの下書きでは、こちらのほうが速く扱えます。導入方法の詳細は AIエージェントからの使い方 を参照してください。

導入

claude mcp add firstch-tools -- npx -y @first-ch/tools-mcp

呼び出し例

# UUID v4 を10件
uuid_generate(type="uuid", count=10)

# ULID を100件(同一ミリ秒でも単調増加=辞書順が生成順になる)
uuid_generate(type="ulid", count=100)

# JSON配列で受け取る/ハイフンなしの大文字にする
uuid_generate(type="uuid", count=5, format="json")
uuid_generate(type="uuid", count=5, hyphens=false, uppercase=true)

Other Tools