RANDBETWEEN関数でエクセルで乱数を発生させる【サンプル作成に便利】

エクセルで乱数を発生させたいときにはRAND関数やRANDBETWEEN関数を使います。

ただ、用途によっては、単にこれらの関数を使うだけでは、イメージに合う乱数にならない場合もあります。

そこで、この記事では、様々な乱数の発生のさせ方を紹介しようと思います。

用途に合いそうな乱数を選んで使ってみてください。

RAND関数、RANDBETWEEN関数で乱数を発生させる

まずは、普通に乱数を発生させてみます。

たとえば、次のようにRANDBETWEEN関数を入力すると、0~1,000,000までの乱数を発生させることができます。

=RANDBETWEEN(0,1000000)

この数式をコピペして乱数を1,000件発生させると、数値は一様にバラつきます。

NORMINV関数で、正規分布に従った乱数を発生させる

NORMINV関数を使って、正規分布に従った乱数を発生させてみましょう。

たとえば、次の式で、平均500,000、標準偏差 500,000÷3.5(≒142,857)の正規分布に従った乱数を発生させることができます。

標準偏差の計算(平均÷3.5)は、適当に設定したもので明確な根拠はありません。ただ、標準偏差をこのくらいに設定しておくと、だいたい0~1,000,000あたりの乱数が発生するようです。

なお、この範囲外の値が発生する可能性は0ではありませんので、ご注意ください。

=NORMINV(RAND(),500000,500000/3.5)

この数式をコピペして乱数を1,000件発生させると、平均値を中心とした、なだらかな分布になります。

複数発生させた乱数の平均を取る

RANDBETWEEN関数で発生させた、いくつかの乱数の平均を取ります。

たとえば、次のように、2つのRANDBETWEEN関数の平均を取ると、0~1,000,000までの乱数を発生させることができます。

私は、取引データのサンプルを作るときには、この方法をベースに乱数を作っています。

=(RANDBETWEEN(0,1000000)+RANDBETWEEN(0,1000000))/2

この数式をコピペして乱数を1,000件発生させると、正規分布と同じように、平均値を中心に、なだらかに分布することになります。

ただ、正規分布に比べると、中央は低め、両端は高めの「なだらかな分布」になります。

この方法は、RANDBETWEENの数を調整することで、なだらかさを調整することができます。

たとえば、RANDBETWEEN関数を5つ足して、5で割ると、よりなだらかな分布を作ることができます。

=(RANDBETWEEN(0,1000000)
+ RANDBETWEEN(0,1000000)
+ RANDBETWEEN(0,1000000)
+ RANDBETWEEN(0,1000000)
+ RANDBETWEEN(0,1000000))/5

複数発生させた乱数の相乗平均を取る

RANDBETWEEN関数で発生させた、いくつかの乱数をかけ合わせて、累乗根を取ります。

たとえば、次のように、2つのRANDBETWEEN関数をかけて、平方根を取ると、0~1,000,000までの乱数を発生させることができます。

=SQRT(RANDBETWEEN(0,1000000)*RANDBETWEEN(0,1000000))

この数式をコピペして乱数を1,000件発生させると、中央のちょっと下よりを中心に、なだらかに分布することになります。

正規分布や乱数の平均に比べると、数値が低い方向に偏ります。

この方法も、かけ合わせる数を変化させることで分布具合を変えることができます。

たとえば、RANDBETWEEN関数を5つかけて、5乗根を取ると、さらに低い方向に偏った分布ができあがります。

=(RANDBETWEEN(0,1000000)
* RANDBETWEEN(0,1000000)
* RANDBETWEEN(0,1000000)
* RANDBETWEEN(0,1000000)
* RANDBETWEEN(0,1000000))^(1/5)

まとめ

このように、数式を工夫することで、様々な分布の乱数を作ることができます。

用途に応じて使い分けてみてください。