MCPで接続 →

計算を入力してください

公式

広告

結果

Your Random Number
47
between 1 and 100
最初の数字 47
生成された数字 1
取りうる値の数(範囲の大きさ) 100

乱数ジェネレーターとは?

乱数ジェネレーター(RNG)は、あなたが指定した範囲の中から予測不能な数字を作り出すツールです。このツールでは、最小値と最大値の間(どちらも含む)の整数をランダムに生成します。1つだけ取り出すことも、まとめて複数取り出すこともでき、同じ数字の重複を許すかどうかも自由に選べます。抽選やプレゼント企画、宝くじのような数字選び、リストからの当選者決め、チーム分け、サイコロやゲームの出目、サンプリングなど、公平に選びたいあらゆる場面で役立ちます。

使い方

範囲の最小値最大値を入力し、必要な生成する個数(1〜100)を設定して、重複を許可するかを選びます。重複をオフにすると、ジェネレーターは異なる値だけを返します。さらに、範囲内で用意できる数より多くの個数を指定した場合は、利用できる値の数に自動で上限が調整されます。

計算式の解説

整数を1つ生成するとき、ツールは次の式を使います。

$$x_i = \text{Min} + \left\lfloor \text{rand}() \times \left( \text{Max} - \text{Min} + 1 \right) \right\rfloor$$

ここで \(\text{rand}()\) は \([0, 1)\) の範囲をとる一様な小数です。これに範囲の大きさ \(\text{Max} - \text{Min} + 1\) を掛けて切り捨てると、0から「範囲−1」までのオフセットが得られ、それを \(\text{Min}\) に足します。これにより、両端を含む区間内のすべての整数が同じ確率で選ばれます。複数生成する場合はこの処理を繰り返すだけです。

$$x_i = \text{Min} + \left\lfloor \text{rand}() \times \left( \text{Max} - \text{Min} + 1 \right) \right\rfloor \quad i = 1 \dots \text{Count}$$

重複を禁止しているときは、選ばれた値はプールから取り除かれるため、二度と現れません。

$$\begin{gathered} \{x_1, x_2, \dots, x_k\} \subseteq \{\, \text{Min}, \dots, \text{Max} \,\}, \quad x_i \neq x_j \\[1.5em] \text{where}\quad \left\{ \begin{aligned} k &= \min\!\left( \text{Count},\; R \right) \\ R &= \text{Max} - \text{Min} + 1 \end{aligned} \right. \end{gathered}$$
広告
0〜1の乱数値を整数の範囲にマッピングする乱数の式を示すフラットな図
この式は rand()(0〜1)を整数の範囲にマッピングし、結果を切り捨てます。
数直線上の最小値から最大値までの範囲から整数をランダムに選ぶ様子を示す図
乱数ジェネレーターは、選択した最小値と最大値の間で値を一様に選びます。

具体例

たとえば1から6までの中から重複しない数字を3つ選びたいとします。範囲の大きさは \(6 - 1 + 1 = 6\) です。ジェネレーターは {1,2,3,4,5,6} の中から選び、選んだ値を順に取り除いていくので、たとえば 4, 1, 6 のように、決して重複しない3つの異なる数字が得られます。重複を許可している場合は、4, 4, 1 のような結果になることもあります。

よくある質問

本当に完全なランダムですか? いいえ、これは「疑似乱数」です。ソフトウェアのアルゴリズムによって生成され、統計的には十分に均一で、ゲームや抽選、日常的な選択には申し分ありません。ただし暗号用途には適していません。

最小値と最大値は含まれますか? はい。どちらの端の値も生成される可能性があり、区間は両端を含みます。

最小値が最大値より大きい場合は? 自動的に入れ替えられるので、範囲は正しく機能します。

最終更新: