Linuxのコマンドライン上で簡単にランダムな数値を取得する方法

こんにちは、さるまりんです。

ランダムな値を元に何かするという場面に出くわすことが結構あります。
ゲームとかを作っている時に特にそうですね。

そのランダムな数値をパパッととりたい。
$RANDOM変数を使ってLinuxのコマンドラインでやってみました。

$RANDOMはBashやZshなど多くのUnixシェルで利用できる組み込み変数です。
この変数は0から32767までの間のランダムな整数を生成してくれます。

3回実行して出力してみました。

$ echo $RANDOM
9946
$ echo $RANDOM
23893
$ echo $RANDOM
507

とても簡単ですね。

1から100までの乱数を生成するにはこうです。
こちらも3回やってみました。

$ echo $(( $RANDOM % 100 + 1))
81
$ echo $(( $RANDOM % 100 + 1))
41
$ echo $(( $RANDOM % 100 + 1))
53

1から100ができるのだから、これもできますね。
1から6にして3回サイコロを振ってみました。

$ echo "サイコロの目は $(( $RANDOM % 6 + 1)) です"
サイコロの目は 6 です
$ echo "サイコロの目は $(( $RANDOM % 6 + 1)) です"
サイコロの目は 5 です
$ echo "サイコロの目は $(( $RANDOM % 6 + 1)) です"
サイコロの目は 1 です

この$RANDOM変数は暗号学的には安全な乱数とはいえないそうです。また範囲も0から32767までと限られています。簡単なゲームとかであれば問題ないでしょうが、もっと品質、精度の高いものが必要であれば別の方法を取る必要があるかと思います。

コマンドラインとタイトルにありますが、シェルなのでスクリプト内でも同じように使うことができます。
いろんなプログラミング言語にも乱数生成の仕組みがあるので、必要に応じてそれらを使うことになるかな。
臨機応変、その時に効果的な利用ができるように知識の幅を広げたいです。

読んでくださってありがとうございました。
それではまた!