Math.randomの性質
0以上1未満の疑似乱数を返しますが、シードを指定できず、予測も可能です。シミュレーションには十分でも、トークンやパスワードの生成には向きません。
暗号用の乱数と剰余バイアス
crypto.getRandomValuesは暗号用途にも使える乱数です。ただし、乱数を単純にnで割った余りにすると、2の32乗がnで割り切れない場合に偏りが出ます。範囲外の値を捨てて引き直す方法で避けられます。
再現できる乱数
結果を再現したいときは、シードを指定できるmulberry32のような小さな疑似乱数を自作します。同じシードなら同じ結果になるので、テストや検証に使えます。