Pythonには、randomとsecretsという乱数を生成するライブラリがあります(どちらも標準ライブラリです)。 randomはMT(メルセンヌ・ツイスタ)を、secretsはOSが提供している乱数生成器(WindowsならBCryptGenRandom())を使用しています。 randomはシュミレーション用で、secretsは暗号化など暗号論的に安全な乱数が必要な場合(暗号化など)に使います。secretsはrandomより均一にばらまかれているのか「カイ二乗検定」を使って検証してみました。 カイ二乗検定の説明はwikipedia:カイ二乗検定にあります。 詳細 ピアソンのカイ二乗検…