乱数メーカー(重複なし・乱数表)
最小値と最大値もその範囲に含みます。個数は最大 1,000 個です。
最小値・最大値・個数を決めて、その範囲のランダムな数字をその場で最大 1,000 個まで作る無料ツールです。抽選の当選番号、席やグループの割り当て、アンケートの対象者選び、テスト用の数値データ、授業で使う乱数表など、「範囲を決めて数字を手早く引きたい」場面で使います。乱数はブラウザに組み込まれた暗号用の乱数生成器(crypto.getRandomValues)で作ります。
同じ数字を 2 回出さない「重複なし」、小さい順・大きい順の並べ替え、小数点以下 1〜6 桁の小数、改行・カンマ・スペースの区切りでのコピーに対応しています。行と列を指定すれば、2 桁または 3 桁の数字を並べた印刷用の乱数表も作れます。 数字の範囲・個数・重複の有無を自分で決めて一覧で受け取りたいときに向いており、1 個ずつ振る演出が欲しいならサイコロ・コイントス、名前を入れて当たりを決めたいならくじ引きメーカーやルーレットのほうが手間が少なく済みます。
- 「数字を生成」タブで、最小値・最大値・個数を入力します(初期値は 1〜100 から 10 個)
- 同じ数字を出したくないときは「重複なし」をオンにします。抽選や座席決めならオンのままにします
- 0.5 刻みのような小数が要るときは「小数にする」をオンにして、小数点以下の桁数を選びます
- 並べ方(出た順・小さい順・大きい順)を選び、「乱数を生成する」を押します
- 区切りを選んで「すべてコピー」を押すと、Excel やメモ帳にそのまま貼り付けられます
乱数表が欲しいときは「乱数表を作る」タブに切り替え、行数(1〜50)・列数(1〜20)・1 マスの桁数を選んで「乱数表を作る」を押します。「印刷 / PDF 保存」で、入力欄やサイトの枠を除いた表だけを紙に刷れます。
数字だけで決めたいときの例: 40 人のクラスで発表者を 3 人選ぶなら、1〜40・3 個・重複なしで生成し、出席番号と照らし合わせます。景品の抽選券が 1〜500 番なら、1〜500・当選本数・重複なしで生成して当選番号を読み上げます。
重複なしにしないと同じ数字はどれくらい出る?
1〜100 から 10 個を重複ありで引くと、どこかで同じ数字が 2 回以上出る確率は 37.2% です。10 個は 100 の 1 割にすぎませんが、3 回に 1 回以上は重複が混ざります。これは「23 人集まると同じ誕生日の人がいる確率が 5 割を超える」誕生日問題と同じ計算で、直感より早く重複が起きます。
計算式は、候補が N 通り・引く個数が k 個のとき、1 − N × (N − 1) × … × (N − k + 1) ÷ Nk です。全部が違う数字になる確率を 1 から引いています。主な組み合わせの値は次のとおりです。
| 範囲と個数 | 同じ数字が出る確率 |
|---|---|
| 1〜10 から 3 個 | 28.0% |
| 1〜40 から 6 個(座席番号など) | 32.5% |
| 1〜100 から 10 個 | 37.2% |
| 1〜100 から 20 個 | 87.0% |
| 1〜365 から 23 個(誕生日問題) | 50.7% |
| 1〜1,000 から 50 個 | 71.2% |
抽選の当選番号や座席番号のように「1 人に 1 つ」の割り当てでは、重複は不具合になります。「重複なし」をオンにすれば、範囲に含まれる数の個数までは必ず全部違う数字が出ます。サイコロを何回も振る、テストデータを作る、のように同じ数字が出てよい用途ではオフにします。
重複なしの乱数はどうやって作っている?
範囲の数字を並べたカードの山を、上から k 枚ぶんだけシャッフルして取り出す方法(フィッシャー・イェーツのシャッフル)で作っています。1 枚目は山全体からランダムに選んで先頭と入れ替え、2 枚目は残りからランダムに選んで 2 番目と入れ替え、という操作を個数分だけ繰り返します。どの数字の組み合わせも同じ確率で出ます。
「引いて、出ていない数字なら採用し、出ていたら引き直す」という素朴な方法は、範囲いっぱいまで引くときに引き直しが急増します。1〜1,000 から 1,000 個を引くと、最後の 1 個は 1,000 回に 1 回しか当たりません。このツールは入れ替えた位置だけを記録するので、範囲が -10 億〜10 億のように広くても、引き直しなしで個数分の手間で終わります。
乱数の偏りはない?
ブラウザ標準の crypto.getRandomValues で 32 ビットの乱数を取り、割り切れない端数の範囲に当たった値は捨てて引き直すため、範囲内のどの数字も同じ確率で出ます。Math.random は統計的には十分ばらつきますが、内部の状態から次の値を推測できる種類の生成器です。抽選の公平性を説明する場面では、OS の乱数源を使う暗号用の生成器のほうが説明しやすくなります。
32 ビットの乱数は 0〜4,294,967,295 の 4,294,967,296 通りです。これを 100 で割った余りをそのまま 1〜100 に当てはめると、4,294,967,296 は 100 で割り切れず 96 余るため、小さいほうの 96 個の数字だけが 42,949,672 回より 1 回多く出ます。差は 4,300 万分の 1 ほどですが、このツールは余りの範囲に当たった乱数を捨てて引き直す方法(棄却サンプリング)で、この偏りもなくしています。
小数の乱数も、いったん整数として引いています。0〜1 を小数点以下 2 桁で引くときは、内部で 0〜100 の整数(101 通り)を引いてから 100 で割った表記に直します。小数のまま計算すると、端の 1.00 が出なくなったり、0.1 + 0.2 が 0.30000000000000004 になるような誤差が混ざったりするためです。
生成した数字はページを再読み込みすると消えます。公開抽選などで結果を記録に残す場合は、生成直後の画面を保存するか印刷してください。生成し直すと前の結果は残りません。
乱数表とは?使い方は?
乱数表は 0〜9 の数字をランダムに並べた表で、表のどこから読み始めても、どの数字も同じ確率で現れます。統計の授業での無作為抽出、アンケートの対象者選び、実験の割り付けなど、パソコンを使わずに公平に選びたい場面で使われてきました。このツールの初期設定は 20 行 × 10 列の 200 マスで、5 行・5 列ごとに区切り線を入れて読む位置を追いやすくしています。
読み方の例として、名簿の 1〜60 番から 5 人を選ぶ手順は次のとおりです。
- 2 桁の乱数表を用意し、読み始める位置を決めます(鉛筆を目をつぶって落とす、日付の数字を使う、など)
- そこから右へ 2 桁ずつ読みます。行の終わりまで来たら次の行の先頭へ進みます
- 01〜60 の数字なら採用し、00 と 61〜99 は読み飛ばします
- すでに採用した番号が出たら読み飛ばし、5 人そろったら終わります
3 桁の表は 000〜999 を並べたもので、100 人を超える名簿から選ぶときに使います。読む方向と読み飛ばす規則は、読み始める前に決めておきます。結果を見てから規則を変えると無作為ではなくなります。
入力できる範囲や桁数に上限はある?
- 最小値・最大値は -10 億〜10 億、個数は 1〜1,000 個です。重複なしでは、個数を範囲に含まれる数の個数以下にしてください(1〜10 なら 10 個まで)
- 小数モードの最小値・最大値は、選んだ桁数以内で入力してください。小数点以下 2 桁なら 0.125 は使えません
宝くじの予想に使うと当選確率は上がる?
上がりません。宝くじや公営競技の予想番号として使っても、どの番号も当たる確率は同じです。
よくある質問
- 重複なしの乱数は何個まで作れますか?
- 1 回に最大 1,000 個です。ただし範囲に含まれる数の個数が上限になり、1〜10 なら 10 個、1〜100 なら 100 個までです。範囲いっぱいの個数を指定すると、範囲の数字を 1 回ずつ使った並べ替えになります。
- この乱数は抽選に使っても公平ですか?
- 公平です。ブラウザ標準の暗号用乱数(crypto.getRandomValues)を使い、割り切れない端数の範囲に当たった値は捨てて引き直すため、範囲内のどの数字も同じ確率で出ます。結果を記録に残す場合は、生成直後の画面を保存するか印刷してください。
- 小数の乱数も作れますか?
- 作れます。「小数にする」をオンにして小数点以下 1〜6 桁を選ぶと、その刻みで範囲内の値が等しい確率で出ます。たとえば 0〜1 を 2 桁で作ると、0.00 から 1.00 までの 101 通りから選ばれます。
- 乱数表を印刷できますか?
- できます。「乱数表を作る」タブで行数(最大 50)・列数(最大 20)・1 マスの桁数(2 桁か 3 桁)を選んで作り、「印刷 / PDF 保存」を押すと、入力欄やサイトの枠を除いた表だけを印刷できます。
関連ツール
抽選・ランダム
サイコロ・コイントス
サイコロをその場で振れる無料ツール。個数(1〜10個)と面数(4・6・20・100面ほか2〜100面)を指定でき、2個以上なら合計も表示。コイントス(表・裏)にも対応。
抽選・ランダム
決めるルーレット
選択肢を入力して回すだけで、順番・当番・お題・行き先などをランダムに1つ決められる無料ルーレット。選択肢は2〜100個に対応し、4択ルーレットやシチュエーション決めにも使えます。結果はブラウザ内の乱数で公平に決まり、外部に送信されません。
抽選・ランダム
パスワード生成(ランダム・記号対応)
桁数・大文字小文字・数字・記号を選び、紛らわしい文字を除いてランダムなパスワードを最大20個一括生成。4〜64桁に対応し、暗号用乱数(crypto.getRandomValues)で作ります。
抽選・ランダム
くじ引きツール(無料・当たり本数指定・印刷対応)
くじの本数と当たりの本数を指定すると、重複なしで当たり・はずれを一括抽選。画面で1本ずつ引く進行と、三角くじ・番号くじを印刷して配る進行の両方に対応。最大500本・当たり5種類まで。