擲骰子、擲硬幣、今天吃什麼不知道怎麼選?讓工具幫你公正隨機決定。
這個工具的骰子、硬幣、今天吃什麼結果,背後都是呼叫瀏覽器內建的 Math.random() 函式(例如骰子用 Math.floor(Math.random() * sides) + 1 算出點數)。這個函式產生的數字嚴格來說叫做「偽隨機數」(pseudorandom),意思是它不是真正無法預測的物理隨機(例如放射性衰變、大氣雜訊),而是電腦用一套固定的數學公式,從一個起始值(種子)開始,一步步演算出一長串看起來雜亂無章、但其實有規律可循的數字序列。對日常使用來說,這種偽隨機已經足夠公平——你事先完全猜不到、也無法操縱下一次會擲出幾點,統計上長期擲下來,每個點數出現的機率也會趨近平均。只有在高安全性需求的場合(例如加密金鑰),才需要更嚴謹的「真隨機」或「密碼學安全隨機」來源,一般的擲骰子、擲硬幣、選餐廳完全不需要在意這個差異。
人對隨機的直覺其實很不準。連續擲硬幣如果出現「正正正正正」五連正面,很多人會直覺覺得「這不隨機、一定有問題」,但在真正的隨機序列裡,這種連續同面的情況其實完全在合理機率範圍內(擲 5 次全部正面的機率是 1/32,並不算罕見)。反過來,人自己「手動亂猜」數字時,反而會刻意避開重複、刻意讓分布看起來平均,這種「看起來很隨機」的序列,用統計方法檢驗反而會發現規律性太強、不夠隨機。這也是為什麼交給程式產生亂數,會比自己憑感覺選(例如「因為上次吃拉麵這次不要選拉麵」)更接近真正公正的隨機結果——工具不會有「這個剛選過所以要避開」的心理偏誤。
假設三個朋友在猶豫晚餐吃什麼,與其花十分鐘互相禮讓「都可以、你決定」,可以切到「🍜 今天吃什麼」模式,選「🎉 團體」類別,工具會帶入火鍋、燒烤吃到飽、Buffet 等多人聚餐選項,按下「幫我選」後跑幾秒動畫,最後公布結果。如果想要更公平的儀式感,也可以用「🎲 擲骰子」模式先決定誰有否決權(例如擲一顆 6 面骰,點數最大的人可以重擲一次),或用「🪙 擲硬幣」快速二選一(例如兩間店只能選一間,正面選 A、反面選 B)。這種把選擇權交給工具的做法,好處是省去「到底誰要負責決定」的心理負擔,也避免了「明明大家都沒有特別想法,卻要討論半天」的無效溝通。
個人模式會嘗試透過你的網路 IP 位址判斷所在地區(呼叫 ipapi.co 的公開查詢服務),依偵測到的國家代碼帶入當地常見美食清單(工具內建了台灣、日本、韓國、中國、港澳、美英、新馬泰越等地區的清單);如果偵測失敗或所在地區不在清單裡,會改用一份通用清單。這份清單只是起點,你可以在文字框裡自由增刪修改,改完之後只要不手動切換分類,就不會被自動覆蓋——這個設計是為了讓「隨機」建立在你真正願意吃的選項上,而不是限制在工具預設的清單裡。
是即時運算的,不是預先算好的固定結果。每次按下按鈕,工具都會即時呼叫 Math.random() 重新產生一次結果,這是瀏覽器內建的偽隨機數產生器,對擲骰子、擲硬幣這類日常用途來說已經足夠公平、不可預測。
個人模式是依你目前網路連線的 IP 位址判斷地區,如果你使用 VPN、或你的網路業者的 IP 定位資料庫本身不準確,偵測到的地區就可能跟你實際所在地不同。這時候可以直接在文字框裡手動修改清單,改完的內容會被保留,不會被自動覆蓋。
會先跳出確認視窗提醒你「切換分類會覆蓋目前的候選清單」,如果按確定才會真的換成新分類的清單;如果你想保留自己編輯過的內容,取消即可,畫面會維持在原本的分類跟清單不變。
畫面上的輸入框雖然預設上限是骰子 6 顆、硬幣 10 枚,但程式實際執行時允許到 50 顆/枚(超過畫面上限手動輸入更大的數字仍會被接受,但工具內部會限制在 50 以內)。
可以,按鈕沒有次數限制,每次按下都會重新跑一次隨機動畫並產生新結果,前一次的結果會被新結果取代顯示。