bash には乱数を取得できる変数?が 用意されています。
$ echo $RANDOM 2036
繰り返し呼ぶと違う値が返ります。
$ echo $RANDOM 2036 $ echo $RANDOM 17653
man には次のようにあります。
RANDOM Each time this parameter is referenced, a random integer between 0 and 32767 is generated. The sequence of random numbers may be initialized by assigning a value to RANDOM. If RANDOM is unset, it loses its special properties, even if it is subsequently reset.
範囲は 0 〜 32767 のようです。
範囲を指定したい場合は、 % で余りを求めます。
$ echo $(($RANDOM % 10)) 7
printf で 0詰めにもできます。
$ VAL=`printf "%05d" $RANDOM` $ echo $VAL 02036
RANDOM に値を設定すると、乱数の種を決めることができます。
$ RANDOM=3 $ echo $RANDOM 17653 $ echo $RANDOM 12499 $ RANDOM=3 $ echo $RANDOM 17653 $ echo $RANDOM 12499
同じ種を指定すると、同じ値が返ってきます。