- 公開日:
- 更新日:
エクセルの関数で乱数を生成する方法(範囲指定/固定/重複しない)
Excelでは関数を使って乱数を生成できます。乱数の範囲を指定したり、発生した乱数を固定することも可能です。
また重複しないランダムな数字も関数を組み合わせることでできます。他にもランダムに並び替えたいときに役立つ方法を解説します。
乱数を発生させる
RAND関数とRANDBETWEEN関数を使って乱数を発生させる方法を説明します。
0以上1未満の乱数を発生させる
RAND(ランダム)関数は0以上で1より小さい乱数を発生させます。1は含まれません。再計算されるたびに、新しい乱数が返ります。

乱数を生成したい【セル(例ではB2セル)】を選択します。

B2セルに『=RAND()』と入力します。RAND関数に引数はありません。

B2セルに0以上1より小さい乱数が発生しました。

シートの再計算をすると新しい乱数が発生するか確認します。①【数式】タブ、②【シート再計算】の順に選択するとB2セルに新しい乱数が生成されました。
指定した整数の範囲で乱数を発生させる
RANDBETWEEN(ランダムビトウィーン)関数は、指定された範囲で一様に分布する整数の乱数を返します。引数は「=RANDBETWEEN(最小値,最大値)」のように指定します。

乱数を生成したい【セル(例ではB2セル)】を選択します。

B2セルに『=RANDBETWEEN(』とRANDBETWEEN関数を入力します。

1から100の乱数を発生させたいとします。「=RANDBETWEEN(」に続いて『1,100)』と入力し、Enterを押して数式を確定します。

B2セルにRANDBETWEEN関数で生成した乱数が表示されました。

再計算をして新しい乱数になるか確認してみましょう。Shift+F9を押すと再計算が行われます。B2セルに新しい乱数が生成されました。
乱数を固定する
RAND関数やRANDBETWEEN関数で生成した乱数はシートが再計算するたびに新しく生成されます。乱数を生成したらその乱数を残しておきたい場合は固定しましょう。

上図はB2セルに『=RANDBETWEEN(1,100)』と入力したところです。Enterを押さずにF9を押します。

乱数が固定されてセルに表示されました。

数式を確定した後の乱数を固定するには「形式を選択して貼り付け」を行います。
①固定させたいセル(例ではB2セル)を選択し、Ctrl+Cでコピーします。②Alt→E→Sのアクセスキーを押して「形式を選択して貼り付け」ダイアログボックスを表示させます。
②「貼り付け」内の【値】を選択し、③【OK】ボタンを押します。

乱数が固定されてセルに表示されました。
乱数表の作り方
1から100までの範囲で乱数表を作成する方法を説明します。※重複が含まれます。

A1セルにRANDBETWEEN関数を『=RANDBETWEEN(1,100)』と入力します。

①A1セルをCtrl+Cでコピーします。②A1~E10セルまで範囲選択し、Ctrl+Vで数式を貼り付けます。

RANDBETWEEN関数を使って生成した乱数をコピーして表にすることができました。
重複しない乱数を発生させて抽選する
抽選するときなど重複しないランダムな数字が欲しいときはRAND関数とRANK関数を組み合わせて使います。

A~Eの5人に重複しない数字を割り当てたいとします。C3セルに『=RAND()』とRAND関数を入力します。

C3セルの右下をC7セルまでドラッグしてオートフィルで数式をコピーします。

RAND関数はシートを編集するたびに再計算してしまうので固定しましょう。①C3~C7セルを選択し、②Alt→E→Sのアクセスキーを押して「形式を選択して貼り付け」ダイアログボックスを表示させます。
②「貼り付け」内の【値】を選択し、③【OK】ボタンを押します。

発生した乱数に順位を付けることで重複しないようにします。
D3セルを選択し、『=RANK(C3,$C$3:$C$7,1)』と入力します。RANK関数は順序に従って範囲内の数値を並び替えたとき、数値が何番目に位置するか返します。引数は「=RANK(数値,参照,[順序])」のように指定します。
順序に「1」を指定することで昇順に並び替えます。

D3セルの右下をD7セルまでドラッグしてオートフィルで数式をコピーします。

重複しないランダムな数字を表示することができました。抽選では数字が小さい人から選ぶなどして活用しましょう。
ランダムに並び替える
データを並び替えるときにランダムにしたい場合があると思います。そのようなときは関数で乱数を発生させて並び替えしましょう。

A~Eの5つをランダムに並び替えたいとします。C2セルに『=RAND()』と入力します。

C2セルの右下をC7セルまでドラッグしてオートフィルで数式をコピーします。

①並び替えたい列のセル(例ではC2セル)を選択し、②【データ】タブ、③【昇順】の順に選択します。

B列をランダムに並び替えることができました。