乱数の範囲・重複・順番は別々に決める

練習問題や活動の課題を選ぶなら、数字を生成する前にルールを決めます。「ランダム」だけでは重複を許すか、上下の境界を含むかは決まりません。

選べる値の数を先に数える

両端を含む整数の範囲では、個数は最大値−最小値+1です。10から15なら5個でなく6個あります。

重複なしでは選べる値より多く結果を求められません。6個の候補から7個目の異なる値を期待せず、範囲を広げるか要求個数を減らします。

重複と並べ替えは別の問題

重複ありなら同じ数を再び選べます。1つの一覧で重複を禁止しても、後で生成する別の一覧に同じ数が出ることはあります。

昇順は位置を変えるだけです。先頭は最小値になり、最初に選ばれた数とは限りません。優先順位に意味があるなら抽選順を残します。

良い乱数だけで監査可能になるわけではない

このツールはブラウザーの暗号学的乱数源を使います。値の生成には役立っても、企画の実施方法や参加資格を独立して証明する記録ではありません。

賞品や権利が関わるなら規則と記録された手順が必要です。小標本は完全に均等に見えなくても普通で、気に入るまで引き直すことは最初の抽選を保つことと違います。

参考資料: MDN Web Docs — Crypto.getRandomValues()

例:6個の番号から問題を5つ選ぶ

10から15で重複のない例は14, 10, 15, 12, 11です。すべて異なり範囲内です。この例で13が出ないことは問題の証拠ではありません。

並べ替えると新しい抽選なしに10, 11, 12, 14, 15になります。この範囲で異なる7個を求めるのは不可能です。説明用の標本で、結果の約束や企画の公平性の証明ではありません。

参考資料