乱数生成ツール 1〜10とは?
このツールは、1から10まで(両端を含む)の整数をランダムに1つ選び出します。疑似乱数生成器(PRNG)を使っているため、「選ぶ」ボタンを押すたびに、毎回新しく独立した結果が得られます。10個の数字はそれぞれちょうど10分の1の確率で選ばれるので、ゲームや抽選、授業でのアクティビティ、ちょっとした決めごとなど、すばやく公平に1つを選びたいあらゆる場面で活躍します。
使い方
あとは「選ぶ」を押すだけです。大きく表示される数字が結果(Answer)で、「Pick #」のカウンターは今回のセッションで何回抽選したかを示します。もう一度「選ぶ」を押せば新しい数字が表示され、そのたびにカウンターが1ずつ増えていきます。「リセット」を押すとカウンターが1に戻り、最初からやり直せます。
計算式のしくみ
このツールは、[最小値, 最大値] の範囲で一様な離散抽選を行います。最小値=1、最大値=10 のとき、選べる値の個数は \(\text{max} - \text{min} + 1 = 10\) となります。結果は
$$\text{result} = \text{min} + \left\lfloor \text{rand}() \times \text{count} \right\rfloor$$で計算され、ここで \(\text{rand}()\) は [0, 1) の一様な実数を返します。floor(切り捨て)関数によって 0〜9 のインデックスに変換し、そこに最小値を足すことで 1〜10 へとずらしています。さらに、万が一 \(\text{rand}()\) がちょうど 1.0 を返した場合でも結果が最大値を超えないよう、上限を抑えるガード処理が入っています。
$$R = \left\lfloor 1 + \text{rand}() \times 10 \right\rfloor, \quad 1 \le R \le 10$$
具体例
たとえば、ある抽選で \(\text{rand}()\) が 0.4732 を返したとします。すると
$$\text{result} = 1 + \left\lfloor 0.4732 \times 10 \right\rfloor = 1 + \left\lfloor 4.732 \right\rfloor = 1 + 4 = 5$$となり、結果は 5 です。次の抽選で \(\text{rand}() = 0.987\) なら
$$\text{result} = 1 + \left\lfloor 9.87 \right\rfloor = 1 + 9 = 10$$となり、Pick # 2 で結果は 10 になります。7 など特定の数字が1つ出る確率は \(\frac{1}{10} = 0.1 = 10\%\) です。
よくある質問
本当にランダムなのですか? これは疑似乱数です。日常的な用途には統計的に十分公平ですが、暗号学的に安全なものではありません。そのため、セキュリティ用途や宝くじレベルの厳密さが求められる場面では使わないでください。
同じ数字が連続して出ることはありますか? あります。各抽選は独立しており、重複を除外する処理は行っていないため、同じ数字が繰り返し出るのはごく自然なことです。
結果の偏りが気になるのですが? 抽選回数が少ないうちは、結果が偏って見えることがあります。回数を重ねるほど、各数字は全体の 10% に近づいていきます。