ツール
名前ルーレットは貼ったリストから1件選び、チーム分けは名前を均等なグループに分け、乱数ジェネレータは範囲から整数を引き、ほかはコイン、ダイス、はい/いいえ、リスト順、ランダム文字です。
乱数がどう動くか
ブラウザの Web Crypto API が生の32ビット値を出します(crypto.getRandomValues)。範囲付き整数では、範囲の倍数の外の値を棄てて引き直し、範囲内の整数はどれも同じ確率です。このサイトのどこにも Math.random の予備はありません。
ルーレットが当たりをどう選ぶか
当たりはその均一な整数で先に決まります。その扇の中心が指針の真下で止まるように回転角を計算し、アニメーションはその固定目標へ動くだけです。回転中は編集がロックされ、読み上げられる当たりは常に静止した扇です。
チームと数
- チームはリストを Fisher-Yates で混ぜ、名前を順に配って作ります。各名前は1回現れ、人数差は最大1です。
- 重複オフでは数は疎な Fisher-Yates 標本で引きます。時間とメモリは欲しい個数に依存し、範囲の広さには依存しません。
- リスト内の重複は初期状態では残り、コピーごとに別件として数えます。明示的に重複を除くまでです。
- チームはチーム数でも最大グループ人数でも作れます。順送りで人数差は1以内、どのグループも指定人数より大きくなりません。
- セッション履歴(コイン、ダイス、はい/いいえ)はページメモリにあり、タブを閉じるか再読み込みすると消えます。
端末に残るもの
すべての名前・チーム・数値はページ内で処理されます。アップロードはなく、ツールの入力が分析に送られることもありません。名前ルーレットとチーム分けは、保存ボタンを押したときだけ名前付きリストをこのブラウザーに保存します。JSONファイルと共有リンクも端末内で作成されます。クラスや会議ごとにリストを分け、不要になったリストは削除してください。
アクセシビリティ
結果とエラーはスクリーンリーダーに読み上げられ、ルーレットはキーボードで回せ、操作は見えるフォーカスを保ち、システムが動きを減らすよう求めるとアニメーションは縮みます。