ランダムアルファベット生成ツールでできること
英語のアルファベットをランダムに選びます。ゲーム用に1文字だけ引いたり、パズル用に短い文字列を作ったり、アルファベット全体をランダムな順番に並べたりできます。どの文字を対象にするか、大文字・小文字・両方の混在のどれで出力するかを選べます。
すべての処理はブラウザの中で行われ、何も送信・保存されません。
対象は英語のアルファベット26文字だけです。ひらがなやカタカナは選べないので、英語の学習、英字を使うゲーム、アルファベットのコード作りなどに使ってください。
使い方
- 「文字の種類」で「A から Z」「母音のみ」「子音のみ」のどれかを選びます。
- 「大文字・小文字」で「大文字(A)」「小文字(a)」「混在(A または a)」のどれかを選びます。
- 「個数」に必要な文字数を設定します。最大1,000文字です。
- 各文字を1回までにしたい場合は、「重複なし」をオンにします。
- 「結果の区切り」を選びます。初期設定はカンマとスペースです。ほかのレイアウトにはスペースやカンマのみ、一覧にするなら改行、1つの文字列にするなら「なし(つなげる)」を選びます。
- 「文字を生成」を押します。
1文字の場合は、「結果」の下に大きく表示されます。複数の場合は、下の欄に表示されます。「コピー」を押すとコピーできます。直近10回分の結果は、ページを離れるか「クリア」を押すまで、それぞれ「コピー」ボタン付きで「最近の結果」に残ります。
生成例
以下はすべて、このページの裏で動いているコードを実際に実行した結果です。
| 設定 | 実行結果の一例 |
|---|---|
| A から Z、大文字、1文字 | V |
| A から Z、大文字、5文字、重複なし | A, P, I, F, L |
| 母音のみ、小文字、3文字 | a, i, e |
| 子音のみ、大文字、4文字、重複なし | N, K, Q, P |
| A から Z、混在、6文字 | j, D, I, L, V, E |
| A から Z、大文字、26文字、重複なし | W, O, C, B, X, Q, T, D, H, A, E, S, L, P, M, N, K, G, Y, Z, F, J, R, U, V, I |
| 母音のみ、10文字、重複なし | E, U, O, I, A |
最後の行は、存在する数より多くの重複しない文字を指定した場合の動作です。母音は5つしかないので、5つすべてがランダムな順番で出て、5文字しか選べなかったことがステータス行に表示されます。
仕組み
ツールは、設定に応じて文字の候補(プール)を作ります。「A から Z」なら26文字、「母音のみ」なら5文字、「子音のみ」なら21文字です。「混在」の場合は各文字の小文字と大文字の両方がプールに入るので、プールの大きさが2倍になり、どちらの形も同じ確率で選ばれます。
プールから選ぶには、ランダムな位置が必要です。ツールは、ブラウザの安全な乱数源である crypto.getRandomValues からランダムなビットを取得します。そのビットを棄却サンプリングで位置に変換します。棄却サンプリングは、一部の位置がわずかに選ばれやすくなってしまうまれな値を捨てる方法です。その結果、プール内のすべての文字がまったく同じ確率で選ばれます。
「重複なし」の場合は、フィッシャー・イェーツ法でプールをシャッフルし、先頭から文字を取り出します。袋から文字タイルを戻さずに引いていくのと同じです。
活用アイデア
- 言葉遊び。 カテゴリーゲームの1回分の頭文字を選びます。その文字で始まる国名、動物、食べ物を英語で答えます。
- 英語の授業。 子どもに書かせる文字や、本の中から探させる文字を読み上げます。英語を学び始めたばかりの子どもには小文字を使ってください。
- お絵かきや作文のお題。 文字を1つ選び、登場人物の名前がすべてその文字で始まる短い物語を英語で書きます。
- 仮のコード。 サンプルの商品コードや座席ラベル用に、ランダムな大文字をいくつか作ります。
- つづりの練習。 NATO フォネティックコード変換を使って、A は Alfa、B は Bravo のように各文字を読み上げます。
ヒントと制限
- 英語の出現頻度ではなく均等な確率です。 実際の英文では E が Q よりはるかに多く使われますが、このツールはそのパターンをまねしません。選べる文字はすべて同じ確率なので、ゲームが公平になります。
- ここでは Y は子音です。 Y を母音として扱うゲームの場合は、「A から Z」から選び、必要に応じて引き直してください。
- 重複するのは普通のことです。 オフにしない限り重複します。26文字から6文字を引くと、同じ文字が2回含まれることはよくあります。
- 英語のアルファベットのみです。 É や Ñ のようなアクセント付きの文字や、ひらがな・カタカナは含まれません。
- パスワードには使わないでください。 アルファベットだけでは弱いパスワードになります。数字や記号を加え、強度をビット数で表示する強力なパスワード生成ツールを使ってください。
そのほかのランダムなアルファベットの作り方
Excel や Google スプレッドシート。 =CHAR(RANDBETWEEN(65,90)) は A から Z の大文字を1つ返します。小文字には97と122を使います。この数式はシートが変更されるたびに再計算されるので、結果を残したい場合は値として貼り付けてください。
Python。 import random, string の後に random.choice(string.ascii_uppercase) で大文字を1つ選べます。重複なしで5文字なら random.sample(string.ascii_uppercase, 5) を、結果が予測できない必要がある場合は secrets モジュールを使います。
JavaScript。 String.fromCharCode(65 + n) で、0から25の数字を文字に変換できます。その数字は Math.random ではなく、このページと同じ方法のような公平な乱数源から取得してください。
関連ツール
任意の範囲のランダムな数字には、乱数生成ツールを使ってください。すでに一覧にある単語や名前からランダムに選ぶなら、ランダム選択ツールに貼り付けてください。