# 抛硬币在线工具使用教程：3D 翻转动画 + 批量抛掷，一秒做出公平随机决定

> 来源：工具派（https://gjupai.com） 原文页面：https://gjupai.com/tutorial/coin-flip-guide

## 工具简介

**抛硬币**是工具派推出的一款免费在线随机决策工具：点击一下按钮，屏幕上的金币就会以 3D 翻转动画旋转约 0.8 秒后停稳，随机给出正面或反面。它支持**单次抛掷**和**批量抛掷**（最多一次抛 1000 次），可以自定义正反面的文字和 Emoji，自带抛掷音效与手机震动反馈，并实时统计总次数、正反面占比和连击纪录，历史记录还能导出为 CSV 或 JSON。全程在浏览器本地运行，随机结果由 `crypto.getRandomValues` 加密安全随机源生成，公平可靠，打开即用、无需登录。

## 功能亮点

- **3D 翻转动画**：金币沿 Y 轴旋转 5–8 圈后停稳，正反面分别展示各自的 Emoji 和文字，观感接近真实抛硬币。
- **单次 / 批量抛掷**：可选 1、3、5、10、50、100、1000 次，批量抛掷时一次性给出全部结果并统计多数方，适合「Best-of-N」多局决胜。
- **自定义正反面**：正反两面的文字（最多 10 字）和 Emoji（最多 4 字符）均可修改，可以把它变成「吃米饭 / 吃面条」「去 / 不去」等任意二选一决策器。
- **加密安全随机源**：每次结果由浏览器 `crypto.getRandomValues` 生成（不支持时回退 `Math.random`），统计卡片的「随机源」一栏显示 `crypto`。
- **实时统计面板**：总次数、正面次数与占比、反面次数与占比、当前连击、最长连击六张卡片随每次抛掷即时更新。
- **音效与震动**：抛掷和落地各有一段提示音，手机等支持 `vibrate` 的设备还会有震动反馈。
- **历史记录与导出**：最近 50 条结果自动保存在浏览器本地（刷新不丢），可一键导出 CSV（带中文表头）或 JSON。
- **快捷键操作**：按空格或回车即可抛掷，按 R 键重置，连抛时不用挪鼠标。

## 参数说明

| 参数 | 说明 | 默认值 / 取值范围 |
| --- | --- | --- |
| 正面文字 | 金币正面显示的名称，也用于结果与历史记录 | 默认「正面」，最多 10 字 |
| 反面文字 | 金币反面显示的名称 | 默认「反面」，最多 10 字 |
| 正面 Emoji | 金币正面显示的图标 | 默认 🦅，最多 4 字符 |
| 反面 Emoji | 金币反面显示的图标 | 默认 🦌，最多 4 字符 |
| 抛掷次数 | 单次点击抛出的硬币数量 | 1（默认）/ 3 / 5 / 10 / 50 / 100 / 1000 次 |

## 使用步骤

1. **打开工具页面**：上方是四个自定义输入框和抛掷次数按钮，中间是金币与操作按钮，下方是统计卡片。初始状态下统计均为 0，历史记录为空，点击抛掷后即可看到各项数据变化。

![抛硬币工具初始界面：上方为正面/反面文字与 Emoji 四个自定义输入框和抛掷次数选择按钮（1/3/5/10/50/10](article/202607/1783967857755_3951.png)

2. **自定义正反面（可选）**：在「正面文字」「反面文字」输入框中修改名称（如「吃米饭」「吃面条」），在「正面 Emoji」「反面 Emoji」中粘贴喜欢的图标，金币两面的显示会立即同步更新。

3. **选择抛掷次数**：日常二选一保持默认的「1 次」即可；想多局决胜或验证概率时，点选 3、5、10、50、100 或 1000 次，选中的按钮会高亮为蓝色，抛掷按钮文字也会变成「抛 N 次」。

4. **点击抛掷**：点「抛硬币」按钮（或直接按空格 / 回车键），金币开始 3D 翻转并伴随音效，约 0.8 秒后停稳，按钮下方随即显示「本次结果」。若抛掷次数大于 1，还会额外显示多数结果（如「多数结果：正面（正面 3 / 反面 2）」），正反数量相同时显示「本次平局」。

5. **查看统计**：每次抛掷后，下方统计卡片的总次数、正反面次数与占比、当前连击、最长连击都会即时刷新。

6. **查看与导出历史**：抛掷一次后，页面底部会出现「最近历史」表格（最多保留 50 条，含时间、结果、次数），点「导出 CSV」或「导出 JSON」即可把记录下载到本地。

7. **重置数据**：点「重置」按钮（或按 R 键）可清空历史记录与全部统计，恢复到初始状态。

## 使用技巧

- **把它变成万能二选一**：把正反文字改成任意两个选项（如「方案 A / 方案 B」「今天加班 / 准时下班」），配上贴切的 Emoji，就是一个专属决策器。
- **用 1000 次验证公平性**：选「1000 次」抛一轮，正反面占比通常非常接近 50%，可以直观感受加密随机源的均匀性。
- **连击纪录当小游戏玩**：和朋友比谁抛出的「最长连击」更高，统计面板会自动记录。
- **键盘连抛更高效**：手指放在空格键上连续抛掷，比移动鼠标点击快得多；注意焦点在输入框内时快捷键不会触发，避免误抛。
- **CSV 可直接用 Excel 打开**：导出的 CSV 带 BOM 和中文表头（时间、结果、次数），用 Excel 打开不会乱码，适合做抛币实验记录。
- **手机上有震动反馈**：在支持震动的手机浏览器中抛掷，落地时会有短震动，临场感更强。

## 常见问题

**Q1：抛出来的结果真的随机、公平吗？**
是的。每次结果都通过浏览器的 `crypto.getRandomValues` 加密安全随机数生成（老旧浏览器回退 `Math.random`），正反面概率各 50%，统计面板的「随机源」卡片会显示当前使用的随机源。

**Q2：批量抛掷时，金币停在哪一面代表什么？**
金币最终停稳的一面是本次批量中**最后一次**抛掷的结果，即「本次结果」；同时页面会统计整批的多数方，给出「多数结果」或「本次平局」，用于多局决胜时以多数结果为准。

**Q3：历史记录保存在哪里？会丢吗？**
记录保存在当前浏览器的本地存储（localStorage）中，最多保留最近 50 条，刷新页面后统计和历史都会自动恢复。但清除浏览器缓存、更换浏览器或设备后记录会丢失，重要数据建议及时导出 CSV / JSON 备份。

**Q4：为什么没有声音或震动？**
音效由浏览器 Web Audio 播放，需在页面上有过点击等交互后才会激活（浏览器自动播放策略限制）；震动仅部分手机浏览器支持，电脑上没有震动属正常现象，不影响抛掷功能。

**Q5：抛掷次数选 1000 次会卡吗？**
不会。1000 次随机结果在本地瞬间生成，金币只播放一次翻转动画，随后直接展示统计结果，浏览器开销很小。

