開発 へ戻る
ビンゴカード生成 (3×3 〜 7×7 + FREE)

ビンゴカード生成 (3×3 〜 7×7 + FREE)

1 行 1 項目のリスト (数字 / 単語 / 俳句 / 社内ジャーゴン他) から N×N (3〜7) のビンゴカードを N 枚一括生成。FREE セル (中央、奇数サイズのみ)、シード指定で同じ結果を再現可能、TSV エクスポート。社内イベント・学校・カンファレンス・読書会 / 飲み会のアイスブレイクに。

使い方

1 行 1 項目で項目リスト (数字 / 単語 / 俳句 / 社内ジャーゴンなど) を貼り付け、サイズ (N×N、3〜7) と枚数 (1〜100) を指定して「生成」を押すと、N 枚のビンゴカードを一括生成します。**FREE セル** を ON にすると中央 (奇数サイズのみ) に「FREE」または任意のラベルが入ります。**シード** を指定すれば同じ結果を再現可能 (社内イベントで「事前に作ったカードを後で同じ結果で再現したい」「不正がないことを証明したい」場合に)。**TSV エクスポート** で全カードを Excel / Google スプレッドシートにそのまま貼り付け可能。**印刷** ボタンで各カードを 1 枚ずつ印刷フォーマットに。社内のオンライン会議ビンゴ、学校のレクリエーション、カンファレンス / 読書会 / 飲み会のアイスブレイクに。

詳細解説

ビンゴの項目リストには、社内の文脈情報が詰まっている

ビンゴカードの項目は、そのイベントの内輪情報の縮図です。会議ビンゴで使う項目には「〇〇さんの口癖」「また意思決定が延びた」「PPT の枚数が 50 枚超え」のようなチーム固有のジャーゴンや、組織の課題を揶揄する表現が含まれることがあります。社内イベントのビンゴであれば部署名や役職者名が入ることも珍しくありません。読書会や勉強会のビンゴには、まだ公開されていない書籍のネタバレや参加者名が含まれることがあります。これらは組織の外には出したくない情報です。

外部のビンゴカードジェネレーターに項目リストを貼り付けると、そのリストはサーバーへ送信されます。利用規約でコンテンツの利用権を付与していると定めているサービスでは、その内容がサービス側で利用・分析される可能性があります。

「無害なゲームツール」のオンラインサービスが持つ情報

ビンゴカードジェネレーターは無害なレクリエーションツールに見えますが、サービス側の視点では入力されるテキストリストは組織や個人の文脈情報です。フリーサービスは広告収益やデータ活用を前提に運営されているものが多く、フォーム入力をトラッキングするアナリティクス SDK が動作していることがあります。入力した項目が広告ターゲティングの参考データになる可能性もゼロではありません。

また、シードを指定して再現可能な生成を使いたい場面 (「参加者全員に同じカードを配る」「不正がないことを証明する」) では、シード値と項目リストの組み合わせが外部に出ると、生成されるカード全体が第三者に再現できてしまいます。ゲームの公正性を担保するためにも、生成処理はローカルで閉じておくべきです。

Mulberry32 PRNG によるブラウザ内完結の生成

本ツールはビンゴカードの生成に Mulberry32 という 32 ビットシード PRNG を使用しています。シードと項目リストがあれば完全に決定的な結果が得られ、同じシード + 同じリストであれば何度実行しても同じカードが生成されます。並び替え (Fisher-Yates シャッフル) も含めてすべてクライアント側 JavaScript で処理され、外部 API は一切使いません。

TSV エクスポートはブラウザの Clipboard API でクリップボードに書き出すか、Blob として URL.createObjectURL でダウンロードする形で、サーバーを介しません。100 枚のカードを一括生成しても、生成過程のデータはブラウザのメモリ内にのみ存在します。DevTools の Network タブを開いた状態で生成しても追加リクエストは発生しません。

会議ビンゴを安全に楽しむために

会議ビンゴや社内イベントのビンゴで「口に出せない本音」を項目にする場合、それが外部に出ることは参加者全員が望まないはずです。本ツールは項目リストをどこにも送信しないため、チームの内輪ジャーゴンや組織の課題を題材にしたビンゴを安心して作れます。生成結果の印刷フォーマットも、ブラウザの印刷ダイアログを使ってローカルで完結します。

Mulberry32 と Fisher-Yates: シードからカードまでのアルゴリズム

Mulberry32 は 2017 年に Tommy Ettinger らが整理した 32 ビット状態の小さな PRNG (Pseudo-Random Number Generator) で、シードから state += 0x6D2B79F5 を 1 回回し、Math.imul(t ^ (t >>> 15), t | 1)t ^= t + Math.imul(t ^ (t >>> 7), t | 61)(t ^ (t >>> 14)) >>> 0 で 1 つの 32 ビット整数を吐き出す構造です。サイクル長は 2^32 = 約 42 億 で、ビンゴカード 100 枚程度の用途には十分です。Math.random() を使わずに自前で実装している理由は、Math.random() の実装がブラウザベンダーによって異なり、同じシードを与えても結果が再現しないためです。Mulberry32 はコードが 5 行で、移植性も保証されます。

各カードのセル配置は Fisher-Yates シャッフル (Knuth shuffle) で決まります。配列の末尾から先頭に向かって、各位置 i0..i の範囲の乱数インデックス j を引き、要素を入れ替える単純なアルゴリズムです。シャッフルの偏りがなく (各順列が等確率)、in-place で動作するため、N×N (最大 7×7 = 49 マス) のカードを 100 枚生成する処理が一瞬で終わります。乱数の引き元が Mulberry32 なので、同じシード + 同じ項目リストなら何度実行しても完全に同じカード列が出ます — これがビンゴの公平性を支える基盤です。

Bingo のレギュレーション差: 日本式 5×5、米国式、Eyes Down

ビンゴという遊びは国・地域・年代によってルールが多様です。日本の社内イベントで主流の 5×5 + FREE は米国式 (US Bingo) を踏襲したもので、ボールには 1-75 の数字が割り当てられ、各列に B (1-15)、I (16-30)、N (31-45)、G (46-60)、O (61-75) と頭文字を付ける慣習があります。本ツールはこの数字割り当てモードは扱わず、任意のテキスト項目を均等にシャッフルする「テーマビンゴ」型として設計されています。

イギリス系の Bingo (Eyes Down, 90-ball) は 9 列 × 3 行のチケットに 1-90 の数字を配置する別のフォーマットで、行ごと・チケットごとに勝者が決まる仕組みです。Tombola (イタリア) は 90 数字 + 6 行 × 9 列で、Cinquina (一列揃え) / Tombola (全マス) など多段階の勝利条件があります。これらの公的・商業ビンゴと違い、本ツールが想定するのは「自由項目によるアイスブレイク用 N×N カード」なので、賞金や法令対象 (ギャンブル規制) を伴う本格ビンゴには別途専用システムが必要です。会議ビンゴ・読書会ビンゴ・カンファレンスビンゴのようなレクリエーション用途であれば、FREE セル (奇数サイズの中央) と最大 7×7 までのバリエーションで充分カバーできます。事前準備として項目リストを掃除する場合は line-dedupe で重複セル候補を消し込み、当日の数字玉を引く役を別のツールに任せたければ dice-roller で 75 面や 90 面の擬似ダイスを Web Crypto 由来の一様分布で振る運用にできます。

よくある質問

入力データはサーバーに送信されますか?
いいえ。すべてブラウザ内で完結します。乱数生成・並べ替え・配置すべて JS のローカル処理で、外部 API も使いません。
項目はいくつ必要ですか?
N×N サイズなら **最低 N² 個** (FREE なし) or **N² − 1 個** (FREE 中央) が必要。例: 5×5 で FREE ありなら 24 個、FREE なしなら 25 個。不足時はエラー表示。N 枚生成しても項目リストは 1 セットだけで OK (各カードは同じ項目から異なる順序で選ばれる)。
サイズの目安は?
**3×3** はミニビンゴ (短時間イベント)、**4×4** はカジュアル、**5×5** が標準 (一般的なビンゴ)、**6×6 / 7×7** はカンファレンスやイベントで「終わるまでに時間がかかる」用。サイズが大きいほど必要項目数が増えるので、リストの大きさと相談。
FREE セルは何のため?
ビンゴでは中央セルに **「FREE」マーカー** を置いて、最初から「ヒット済み」とする慣習。これにより 5×5 で 4 個揃えれば BINGO (タテ / ヨコ / 斜め) になります。本ツールは奇数サイズ (3 / 5 / 7) でのみ FREE 適用 — 偶数サイズ (4 / 6) は中央セルが存在しないため。
シードを使うと何が変わりますか?
シード値を渡せば、同じシード + 同じ項目リスト → 同じカードが生成されます。逆にシードを空にすると毎回違う結果。**用途**: (1) 後で参加者全員に同じカードを再生成して配る、(2) 不正がないことを後日検証、(3) 印刷したカードを失くしたとき再生成。本ツールは Mulberry32 (32-bit シード PRNG) を使用、`seed + cardIndex` で各カードに独立した乱数列を与えます。
TSV エクスポートは何に使えますか?
**Excel / Google スプレッドシート** に貼り付けるとそのままビンゴカードの表になります (各セルが 1 セル)。複数カードは `# Card N` の見出しで区切られ、Excel の「区切り文字でテキスト変換」で読み込めば各カードがシート / 行ブロックで分離されます。印刷したい場合は本ツールの 「印刷」ボタンが便利。

「送らない」を確かめるには

このツールは入力データを外部に送信しません。仕組み・監査手順・運営方針は以下で詳しく説明しています。

類似のツール

リスト ランダム並べ替え (シャッフル + チーム分け)

リスト ランダム並べ替え (シャッフル + チーム分け)

1 行 1 項目で貼り付けたリストを Fisher–Yates アルゴリズムでランダム並べ替え。シード値を指定すれば同じ結果を再現可能 (チーム分けで「同じ結果を後で見せたい」に対応)。N 人ずつのチーム分け、重複除去オプションもサポート。くじ引き・席替え・グループ分け・ランダムソートに。

開発テキスト
行ソート — 昇順 / 降順 / 数値 / ロケール

行ソート — 昇順 / 降順 / 数値 / ロケール

テキストを行 (\n) で分割し、Unicode のロケールに従って昇順 (A→Z) または降順 (Z→A) に並び替えます。数値混じり (file1, file2, file10) も自然順に。空行や末尾の改行はそのまま保持。日本語混在テキストにも対応。すべてブラウザ内で処理。

開発テキスト
行重複削除 — 全部一意化 / 重複だけ抽出

行重複削除 — 全部一意化 / 重複だけ抽出

テキストを行 (\n) で分割し、重複する行を除去します。初出の行だけを保持し、元の順序を維持。連続した重複だけでなく離れた位置の重複も対象 (Unix `awk '!seen[$0]++'` 相当)。すべてブラウザ内で処理。

開発テキスト
ダイスローラー — 2d6+3 / 4d6kh3 表記対応 (Web Crypto)

ダイスローラー — 2d6+3 / 4d6kh3 表記対応 (Web Crypto)

2d6+3 や 1d20-2、4d6kh3 (上位 3 つ残し) のような TRPG / ボードゲームでよく使うダイス表記をパースして振る、ブラウザ完結のダイスローラー。乱数は Web Crypto API (crypto.getRandomValues + 拒否サンプリング) で完全に均等分布。プリセット (d4 / d6 / d8 / d10 / d12 / d20 / d100 / 3d6 / 4d6kh3 …) も用意。直近 20 回までのロール履歴をブラウザ内に保持します。サーバー送信なし。

開発生成