ExcelのRAND関数で乱数を生成!使い方と実用的な活用シーンを解説
「乱数」と聞くと、何を思い浮かべますか?多くの方は、ゲームのキャラクターの動きや、宝くじの抽選など、エンターテイメントの世界を想像するかもしれません。しかし、ビジネスや研究の世界においても、この「予測できないランダムな数値」は、将来の売上を予測するシミュレーションや、製品の品質検査のための無作為サンプリングなど、非常に重要な役割を果たしています。Excelには、この乱数を誰でも簡単に生成できるRAND関数が用意されています。この記事では、RAND関数の基本的な使い方から、その少し変わった性質をうまくコントロールする方法、そして実務で役立つ具体的な応用例まで、初心者の方でも分かりやすく解説していきます。
RAND関数の基本的な使い方
RAND関数は、0以上1未満のランダムな小数(例:0.12345...)を生成するための関数です。構文は非常にシンプルで、PI関数と同様に引数を必要としません。
=RAND()
任意のセルにこの数式を入力してEnterキーを押すだけで、ランダムな小数が表示されます。
最重要特性:「揮発性関数」であること
ここで、RAND関数を扱う上で絶対に理解しておかなければならない最大の特徴について説明します。RAND関数は「揮発性(きはつせい)関数」と呼ばれる特殊な関数です。これは、Excelシート上で何か操作(セルの入力や削除、数式の再計算など)が行われるたびに、関数の結果が自動的に再計算され、値が毎回変わるという性質を意味します。
RAND関数を入力すると、それぞれランダムな数が表示される。
B1に数字を入力すると、A1~A10の値が変化する。
B2に数字を入力してもA1~A10の値が変化した。
この「常に値が変わる」という性質は、シミュレーションなどでは便利ですが、一度生成した乱数を固定して使いたい場合には不便です。
生成された乱数を固定する方法
値が変わらないように固定するには、計算結果を数式からただの「値」に変換する必要があります。手順は以下の通りです。
- RAND関数が入力されているセル(またはセル範囲)をコピーします(
Ctrl + C)。 - 同じ場所で右クリックし、「形式を選択して貼り付け」メニューを開きます。
- 「貼り付け」オプションの中から「値」(クリップボードに123と書かれたアイコン)を選択して貼り付けます。
これで、数式が消去され、計算結果の数値だけがセルに残ります。これにより、以降は再計算の影響を受けなくなります。
特定の範囲の乱数を生成する応用テクニック
RAND関数が返す「0以上1未満の小数」を少し加工することで、指定した範囲の乱数を生成できます。
- 0から100までの乱数(小数)を生成する場合
=RAND()*100 - 10から20までの乱数(小数)を生成する場合
=RAND()*(20-10)+10
さらに、INT関数(小数点以下を切り捨てる関数)と組み合わせれば、特定の範囲の「整数」の乱数を生成することも可能です。例えば、「1から100まで」の整数をランダムに生成したい場合は、以下のように記述します。
=INT(RAND()*100)+1
【本題】RANDBETWEEN関数との使い分け
前述のように、RAND関数とINT関数を組み合わせれば整数の乱数を作れますが、実はもっと簡単で直感的な方法があります。それがRANDBETWEEN関数です。
RANDBETWEEN関数は、指定した2つの整数の「間」のランダムな整数を返します。
=RANDBETWEEN(最小値, 最大値)
例えば、「1から100まで」の整数をランダムに生成したい場合、単純に `=RANDBETWEEN(1, 100)` と入力するだけです。RAND関数を使った数式よりもはるかにシンプルで分かりやすいですね。
両関数の使い分けを明確化
では、この2つの関数をどのように使い分ければよいのでしょうか?
| 関数名 | 生成される数値 | 主な用途 | 位置づけ |
|---|---|---|---|
| RANDBETWEEN | 指定した範囲の整数 | サイコロを振る、抽選番号の決定、当番のランダムな割り当て | 初心者向け・一般的 |
| RAND | 0以上1未満の小数 | 統計的なシミュレーション、無作為サンプリング、細かい範囲の乱数生成 | 上級者向け・専門的 |
結論として、「サイコロや抽選のように、単純な整数の乱数が欲しい」という場面では、迷わずRANDBETWEEN関数を使いましょう。一方、次に紹介する「無作為サンプリング」のように、より高度で統計的な処理を行いたい場合に、RAND関数の真価が発揮されます。
RAND関数の実用例:無作為サンプリング
RAND関数が最も輝く活用シーンの一つが、データ分析における「無作為抽出(サンプリング)」です。これは、大量のデータの中から、偏りのないようにランダムに一部のデータを抜き出す作業を指します。例えば、1000人分のアンケート結果から、代表として100人分だけを抽出して分析したい、といった場面で使われます。
RAND関数を使えば、このサンプリングを非常に簡単に行うことができます。
- 手順1:作業列の追加
元のデータの隣に新しい列(作業列)を追加し、データの数だけ `=RAND()` を入力します。各行に異なる乱数が生成されます。 - 手順2:データの並べ替え
追加した作業列を基準にして、データ全体を「昇順」または「降順」で並べ替えます。 - 手順3:データの抽出
並べ替え後のデータの上から、必要な件数(この例では100件)をコピーして取得します。
これだけで、元のリストから完全にランダムなサンプルを抽出することができます。RAND関数が生成する数値に重複はほぼあり得ないため、各データが一意の順番に並び替えられる、という仕組みです。
まとめ
今回は、Excelで乱数を生成するRAND関数について、その基本から応用までを詳しく解説しました。
- RAND関数は、0以上1未満の小数の乱数を生成する。
- 値が毎回変わる揮発性関数であり、固定するには「値の貼り付け」が必要。
- 単純な整数の乱数が欲しい場合は、RANDBETWEEN関数を使うのが最も簡単で分かりやすい。
- RAND関数は、データの無作為サンプリングなど、より高度で統計的な処理で真価を発揮する。
一見すると用途が限られているように見えるRAND関数ですが、そのランダム性はデータ分析の世界では非常に価値のある性質です。まずは手軽なRANDBETWEEN関数から慣れていき、より高度な分析に挑戦する際に、RAND関数の存在を思い出してみてください。
