在使用 Fortune Cookie Generator(幸運籤餅產生器)時縮小選擇池,代表把選擇範圍從完整的 36 行資料庫,切換到四個較小的具名選擇池之一——Focus(專注)、Curiosity(好奇)、Creativity(創意)或 Everyday(日常)——這樣下一次抽籤就會從該組別中回傳一行,而不是從整個集合中挑選。這個切換完全在瀏覽器內部完成:產生器會把它的 36 則訊息資料庫篩選到帶有所選類別標籤的行,然後在這個較小的集合上執行相同的密碼學安全隨機選取,因此新的選擇池大小正好是 9 行,而非 36 行。選擇池大小、偏差處理,以及結果狀態的行為,都會在選取器變更的瞬間同步更新,這就是為什麼類別選擇是用來控制形狀、語氣與長度的實用控制項,讓你能在需要時取得特定風格的趣味短訊。這個工具是為新奇感、寫作提示、團隊破冰活動、卡片佔位文字,或是工作之間的短暫休息而設計,而縮小選擇池正是讓你能夠引導下一次新奇的風格走向。

「縮小選擇池」在這個工具中的意義
在 Fortune Cookie Generator 中,選擇池是存在記憶體中的候選訊息陣列,隨機函式可以從中回傳結果。資料庫中收錄 36 則原創英文訊息,每一則都是為了這個工具所撰寫,而非從語錄或商業籤餅資料庫複製而來,並且平均分配到四個產品定義的類別中,每個類別各 9 行。類別選取器是唯一會改變選擇池的項目,而這就是工具所公開的值:
- All(全部,預設)——包含全部 36 行,橫跨所有四個類別合併成單一集合。
- Focus(專注)——9 行,圍繞小任務與清晰起點的溫和觀察。
- Curiosity(好奇)——9 行,圍繞提問、不尋常的角度,以及趣味性的連結。
- Creativity(創意)——9 行,圍繞草稿、限制、重新混搭,以及未完成的想法。
- Everyday(日常)——9 行,圍繞輕鬆的場景,例如書頁、筆、散步、音樂、點心、新鮮空氣、瀏覽器分頁,以及椅子。
當你變更選取器時,結果面板會自動清空,這是刻意設計的:這個工具會避免類別標籤與上方訊息之間出現任何不一致。在 Everyday 標籤下,Curiosity 的訊息絕不會留在畫面上,因為當下拉選單一變更,新的類別就會立即取代前一次抽籤的資格範圍。
如何用幾個點擊縮小選擇池
- 開啟 Fortune Cookie Generator,找到類別選取器,它位於結果卡片上方,預設為 All。
- 點擊選取器,並依據你想讓下一行偏向的語氣,選擇 Focus、Curiosity、Creativity 或 Everyday。
- 確認結果卡片為空;選擇池變更已自動清除前一次的訊息,且下一次抽籤仍在等待中。
- 按下 Generate message(產生訊息)以要求一個全新的安全亂數,並從所選選擇池的 9 行中抽出一行。
- 閱讀類別標籤與訊息;如果該行適合,Copy message(複製訊息)會將它儲存到你的剪貼簿,或著 Reset(重設)會移除它並把選取器彈回 All。
每次按下 Generate message 都會呼叫 globalThis.crypto.getRandomValues,因此從 9 行選擇池反覆抽籤時,絕不會依賴 Math.random、Date.now、副作用時機的抽取,或伺服器端點。縮小篩選只會改變演算法可以挑選的 9 個候選項目;無論選擇池大小為何,亂數來源與拒絕抽樣邏輯都完全相同。
在 All 與縮小後的選擇池之間,會改變哪些部分
從 All 切換到四個類別篩選器中的任何一個,會一次更新三個使用者可見的細節:候選數量、函式對應到的亂數範圍,以及前一次的抽籤結果是否仍然可見。下表摘要了工具接受之每個選擇池的官方定義行為。
| 選取器 | 選擇池大小 | 偏差處理 | 選取器變更後的結果面板 |
|---|---|---|---|
| All categories(全部類別) | 36 行原創訊息 | 在 32 位元空間上進行拒絕抽樣,對應到全部 36 個索引 | 舊結果自動清除 |
| Focus | 9 行 | 相同的拒絕抽樣路徑,對應到該 9 個索引 | 舊結果自動清除 |
| Curiosity | 9 行 | 相同的拒絕抽樣路徑,對應到該 9 個索引 | 舊結果自動清除 |
| Creativity | 9 行 | 相同的拒絕抽樣路徑,對應到該 9 個索引 | 舊結果自動清除 |
| Everyday | 9 行 | 相同的拒絕抽樣路徑,對應到該 9 個索引 | 舊結果自動清除 |
選擇池大小從 36 縮減為 9 會立即生效,因為訊息資料庫是平均分配在四個產品定義的類別中。偏差處理那一列在所有列中都相同,因為演算法會拒絕任何會落入不完整 modulo 尾段的 32 位元值;若在 32 位元空間上直接取模,當選擇池大小不是 2 的冪次時,會對前面的項目造成微小的優勢,而拒絕抽樣則會在工具所公開的每個選擇池大小下消除這種偏誤。
如果你想更仔細了解為什麼直接取模會使前面的項目偏誤,以及拒絕抽樣方法如何避免這個模式——即使在 9 行選擇池上也一樣——這個工具如何在不產生偏差的情況下挑選訊息的逐步說明,從頭到尾展示了整數層級的數學原理。
縮小選擇池何時有幫助,以及何時使用完整選擇池較佳
當你想要針對單一提示、寫作工作階段,或主題式破冰活動取得一種特定風格時,縮小選擇池就是正確的選擇。如果你正在進行團隊暖身活動,並希望每個抽出的訊息都是觀察式而非推測式,把選擇池設為 Focus 就能讓與會者不會看到形似提問的 Curiosity 行。如果你正在為一個長期專案收集卡片佔位文字,在每次抽籤之間切換 Creativity 與 Everyday,就能讓你在受控的語氣中獲得多樣性。
當你還不確定想要的語氣、只是單純探索這個目錄,或希望每次抽籤都不受類別限制時,堅持使用 All 是較好的選擇。完整選擇池也能讓多次抽籤之間的重複更為少見,因為重複在 9 行子集中出現的速度,會比在完整 36 行資料庫中更快。
以下是一組關於選擇池選取器的快速經驗法則:
- 當多樣性與驚喜感比語氣更重要時,使用 All。
- 當你希望一個工作階段中的每次抽籤在形狀上都保持一致時,使用單一具名類別。
- 當你希望在受控的訊息系列中獲得多樣性時,在各次抽籤之間切換類別。
- 在各個工作階段之間按下 Reset,讓下一個情境從 All 的中性選擇池開始。
縮小選擇池刻意不會做的事情
選擇池篩選器只會改變候選集合;它不會改變這個工具所產生輸出的類型。36 行訊息中沒有任何一則是預言、預兆、決策工具,或關於將會發生什麼的聲明,四個產品定義的類別也遵循相同的界線。產生器不會產生任何幸運數字,也不會產生任何關於健康、財務、感情、法律、醫療,或安全方面的建議;它也絕不接受姓名、生日,或問題來量身打造訊息。它不應該被用來做決策,而這些訊息被定位為趣味性短文案,而非針對個人的建議。
狀態只保留在目前的瀏覽器分頁中。不會寫入 localStorage、sessionStorage、IndexedDB,或任何帳戶;這個工具也不會把任何提示或結果傳送到伺服器。剪貼簿的存取只會在你按下 Copy 時發生,並且可能會被瀏覽器拒絕,而不會影響可見的訊息。如果 globalThis.crypto.getRandomValues 回傳一個無效的值,輸出會被清除,並顯示一則明確的瀏覽器支援訊息,因此這個工具絕不會悄悄改用較弱的隨機來源。
選擇池縮小的快速疑難排解
有幾個細節值得確認,這樣你所看到的行為才會與這個工具實際執行的內容一致,也能讓縮小後的選擇池在多次工作階段中持續可用。
- 如果你一變更類別,結果卡片就立刻清空,這是預期的「變更時清除」行為,而不是載入錯誤。
- 如果你想回到中性的選擇範圍,請按 Reset;選取器會彈回 All,並移除顯示中的訊息。
- 如果你的瀏覽器無法提供安全的隨機性,這個工具會清空結果卡片,並顯示一則明確的瀏覽器支援訊息;在該來源恢復正常之前,不會進行任何抽籤。
- 如果你想在不重建選擇池的情況下換一種語氣,可以從一個具名類別切換到另一個;新的選取器會在下次按下 Generate 時生效。
- 如果在 9 行選擇池中,同一行訊息反覆出現,請再多抽幾次;經拒絕抽樣後的均勻分布會涵蓋每一個索引,而小樣本可能會因機率而短暫聚集。
在 Fortune Cookie Generator 中縮小選擇池,只是單一下拉選單的一次變更,會帶來三個後果:候選數量從 36 縮減為 9、結果面板會清空,以及下次抽籤會使用相同的無偏誤選取路徑,從所選的系列中回傳一行。將選取器視為語氣旋鈕,而非籤運篩選器,那麼這些趣味短訊就能持續發揮它們被設計出來的功能。
如果你正在權衡各種選項,如何挑選完整的原創訊息池對此有詳細說明。