随机工具 · 抽奖 / 摇号

随机排序

名单顺序随机洗牌

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 75 次使用
crypto 强随机 · Fisher-Yates 无偏洗牌 · 空格键重洗
复制
名单输入one item per line0 项
洗牌结果shuffled order
尚未洗牌 左侧输入名单,点「随机洗牌」打乱顺序
就绪 · 每行一个项目,点随机洗牌(结果为原集合的公平排列) crypto.getRandomValues · 拒绝采样消模偏移 · 每种排列等概率
第一节

关于本工具

About

开会前要抽人发言,活动抽奖要打乱名单,随机排序解决的就是这种“公平”需求。把一堆名字或编号贴进去,点一下,顺序就彻底打乱。算法在浏览器本地运行,名单不会离开设备,敏感信息不用怕泄露。

使用场景

抽签定汇报顺序

周会前,组内 12 人谁都不想第一个讲。以往让组长指定,总有人觉得偏袒。用本工具把所有人名打乱排一遍,生成结果投屏到会议室大屏,顺序当场生效。全程浏览器运行,不经过服务器,名字不会外泄。每人两分钟准备时间,会议节奏比指定顺序快了一倍。

团建分组防熟人扎堆

公司 30 人户外拓展,分 5 组,每次分组都出现老员工扎堆、新人落单。用本工具把全员名单洗牌后按人数切段,每组 6 人,部门、工龄完全随机。结果打印出来贴墙上,没人能说分组有猫腻。洗牌过程在本地完成,无需联网,现场就能出结果。

抽奖名单去人为干预

年会三等奖要抽 5 名员工,HR 用 Excel 随机函数抽,总有人质疑是公式预设的。改用本工具,把 200 人名单粘贴进去,点一下洗牌,取前 5 个名字。全程离线操作,没有后台干预的可能。抽完结果截图发群里,中奖者自己都觉得公平。

课堂点名防学生摸清规律

大学选修课 80 人,前两次点名都按学号顺序,学生摸清后只在前几节课露脸。用本工具把名单洗牌一次,按新顺序点名。每次课前重新洗,学生无法预判被点到的时机。工具纯前端运行,不存任何点名记录,符合校园数据隐私要求。

面试顺序消除先后手优势

一天面 8 个候选人,第一个和最后一个往往被考官记忆偏差影响。用本工具把候选人编号洗牌,打印出随机顺序贴在面试间门口。每位考生进场前才知道自己是第几个,考官也按此顺序打分。洗牌结果不经过网络,避免被提前篡改。

第二节

使用指南

Getting Started

使用步骤

  1. 1在输入框中逐行粘贴名单(每行一个条目),支持中英文及数字混合内容
  2. 2点击「随机排序」按钮,列表立即重新排列,每次点击结果不同
  3. 3勾选「保留原始序号」后,排序结果左侧显示原位置编号,便于对照
  4. 4点击结果区域任意条目,自动复制该条目内容到剪贴板
  5. 5使用「导出结果」按钮将排序后的名单以纯文本格式下载到本地

输入输出示例

输入输出说明
张三 李四 王五 赵六 钱七赵六 王五 张三 钱七 李四常规:5条姓名洗牌,验证基本随机打乱功能,每次结果不同但元素完整
A B C D E F G H I J K L M N O P Q R S TQ D M A T H R C I P E N L F S B J G K O常规:20条字母,验证中等规模列表的随机效果,输出无重复无遗漏
唯一项唯一项边界:单条输入,洗牌后仍是自身,验证程序不会报错或返回空
边界:空输入,验证工具对空列表的处理——应返回空而非报错或输出空白行
第1行 第2行 第3行 第5行第5行 第3行 第1行 第2行边界:包含空行的列表,验证空行是否被保留为独立元素(常见易错点)
12345 67890 11111 22222 3333322222 12345 11111 33333 67890易错:纯数字字符串,验证工具不把数字当数值处理,保持为字符串随机
前空格 后空格 前后空格 无空格后空格 无空格 前空格 前后空格易错:带前导/尾随空格的条目,验证工具是否trim空格(多数不trim,保留原样)

常见错误对照

1.把“随机排序”当成“去重”或“排序”来用

✗ 错误输入名单时认为结果会自动去掉重复项,或者按字母顺序排列
✓ 修复输入名单时保持原始内容,结果只打乱顺序,不改变元素本身

随机排序仅改变元素位置,不修改元素内容。去重或排序是独立功能,需使用对应工具。

2.一行放多个元素,误把空格/逗号当分隔符

✗ 错误输入:张三 李四 王五(一行内用空格分隔)
✓ 修复输入: 张三 李四 王五(每行一个元素)

工具按行分割,一行内的空格/逗号会被当作元素的一部分,导致“张三 李四”被当成一个整体。

3.空行或空白行被当作有效元素

✗ 错误输入末尾多了一个空行,结果中多出一个空字符串元素
✓ 修复输入末尾无多余空行,或工具自动忽略空行

多数实现会保留空行作为空元素,导致排序结果中出现空白项。建议提交前检查末尾空行。

4.依赖“随机排序”结果可预测或可复现

✗ 错误期望每次刷新页面或重新点击按钮,相同输入得到相同顺序
✓ 修复每次点击都会重新随机,顺序不可预测

真正的随机排序基于时间或熵源,每次独立。如需复现结果,应记录排序后的顺序,而非依赖工具固定输出。

5.混淆“随机排序”与“随机抽取”

✗ 错误输入 10 个名字,期望只输出 3 个(以为能指定数量)
✓ 修复输入 10 个名字,输出全部 10 个(只是顺序打乱)

随机排序输出所有元素,不减少数量。随机抽取(如抽奖)才需要指定抽取个数,两者是不同操作。

6.元素中包含特殊字符(如换行符、制表符)导致解析错误

✗ 错误元素内容本身包含换行,如“张三 (销售部)”,粘贴后工具误拆成两行
✓ 修复将含换行的元素用引号包裹或替换为其他分隔符(如逗号),或使用转义

工具按行分割,元素内换行会被视为新元素。建议预处理数据,确保每行一个完整元素。

7.认为“随机排序”会改变元素格式(如大小写、空格)

✗ 错误输入“ Zhang San ”(带前后空格),期望输出时自动去掉空格
✓ 修复输入时确保元素格式已符合需求,工具不修改元素内容

随机排序仅改变顺序,不 trim 空格、不转换大小写。输入内容即输出内容。

第三节

工作原理

How It Works

核心公式

Fisher-Yates 洗牌算法:for i from n-1 down to 1: j = random(0, i); swap(arr[i], arr[j])

变量说明

  • n待排序元素总数
  • i当前未处理部分的末尾索引
  • j在 [0, i] 区间内随机选取的索引
  • arr存储待排序元素的数组

示例

对 [A, B, C, D] 4 个元素洗牌:n=4。i=3 时 j 随机取 0~3,假设 j=1,交换 arr[3] 与 arr[1] 得 [A, D, C, B];i=2 时 j 随机取 0~2,假设 j=0,交换 arr[2] 与 arr[0] 得 [C, D, A, B];i=1 时 j 随机取 0~1,假设 j=1,交换 arr[1] 与 arr[1] 不变。最终结果 [C, D, A, B],每个排列出现概率均为 1/24。

粘贴名单每行一个元素解析 & 拆分按换行符分割Fisher-Yates 洗牌原地随机交换输出乱序结果保持原格式全程在浏览器内完成,数据不上传服务器支持重复洗牌,每次结果独立随机
用户输入 本地处理 输出结果
第五节

常见问题

Q & A
怎么把几十个人的名单打乱顺序?要一个个复制进去吗?

不用。输入框支持批量粘贴:打开 Excel 或记事本,选中名单复制,直接粘贴到输入框,每行一个人名(或每项用逗号/空格隔开的,工具会自动识别换行分割)。点「随机排序」按钮,结果区会直接显示打乱后的顺序列表。如果名单超过 500 项,建议分批处理,避免浏览器卡顿(纯前端处理,数据量太大会拖慢页面)。

每次点随机出来的顺序都不一样吗?会不会有重复结果?

每次点击都会重新洗牌,顺序几乎不可能重复——因为用的是 Fisher-Yates 洗牌算法,每次遍历时随机交换元素位置,基于当前时间戳和浏览器随机种子生成排列。同一份名单连续点 10 次,得到 10 组不同顺序的概率超过 99.9999%(理论上有 50! 种排列,远超碰撞可能)。如果发现两次结果完全一样,可能是名单只有 1-2 项(排列数极少),或者浏览器随机种子异常(极少数旧版浏览器问题)。

抽出来的顺序能保存到 Excel 吗?还是只能看看?

结果区下方有「复制结果」按钮,点击即可复制打乱后的名单(每行一项),直接粘贴到 Excel 或 WPS 表格里。如果名单带编号,建议复制后手动加一列序号。工具本身不提供导出文件下载功能,因为纯前端实现无法生成 Excel 文件,但复制粘贴是最快的方案——整个操作不超过 3 秒。如果需要导出为 .csv 文件,可以粘贴到记事本后另存为 CSV 格式。

为什么我输入了 50 个人,点随机后只显示了 48 个?

检查输入内容末尾是否有空行或多余空格。工具按换行符分割输入,如果最后一行是空行,会被当作一个空项参与排序,但显示时自动过滤空项(空字符串不显示)。建议粘贴后先点击「预览」或手动检查输入框最后一行是否为空行。另外,如果名单中有重复的人名(比如两个「张三」),工具不会去重,会当作两个不同项处理,显示数量与你输入的项数一致。

这个随机排序和线下抓阄/抽签比,哪个更公平?

理论上计算机随机更公平。线下抓阄受折叠方式、手部温度、纸张湿度等物理因素影响,很难做到完全随机;而 Fisher-Yates 算法是数学上证明的均匀随机排列算法,每个元素出现在每个位置的概率完全相等(1/n)。但前提是浏览器的 Math.random() 足够随机——现代浏览器(Chrome/Firefox/Safari)已使用密码学级随机数生成器,满足日常排序需求。如果用于抽奖等需要公证的场景,建议录屏或截图保存结果,方便后续核对。

手机浏览器上能用吗?操作起来方便吗?

完全能用,移动端页面自适应手机屏幕宽度。输入框支持手机键盘换行输入,粘贴名单时建议用长按粘贴(不要手动逐行输入,容易漏)。结果区同样支持「复制结果」按钮,点击后自动复制到剪贴板,可以直接粘贴到微信聊天或备忘录里。注意:如果名单超过 200 项,建议在电脑上操作,手机浏览器处理大量数据时滚动和复制体验不如电脑。

我点了随机排序没反应,页面卡住了怎么办?

先检查输入框是否为空或只包含空格——工具会忽略空输入,按钮不触发。如果输入了数据但页面卡死,大概率是名单数量过大(超过 5000 项),纯前端排序会阻塞主线程。解决方案:减少单次输入数量,分批排序;或者关闭当前页面重新打开,工具不会保存任何中间状态。如果卡死后浏览器提示「页面无响应」,可以等待 5-10 秒或直接关闭标签页重开。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭