在线打乱行顺序 · 列表洗牌 / 随机排序 | DedupeLines
DedupeLines
免费 · 无需注册 浏览器本地处理 · 零上传 · 公平 Fisher-Yates

在线随机打乱行

粘贴任意列表,得到一份随机重排的结果。跟首页去重工具的「打乱结果」开关不同,这里不会去重、不丢任何行 — 只是把所有行按公平的 Fisher-Yates 算法重新排列,每点一次就是一次新的随机。

输入 · 0 行
输出 · 0 行
在左侧粘贴内容 — 结果会实时出现在这里。

或按 Ctrl+Enter

输入行数 0
空行数 0
输出行数0

什么时候用这个工具

指南
01 / 抽奖 / 抽签

把名单粘进来,打乱一下,前几位就是中奖者。不需要 Excel 宏,也不用把名字交给第三方网站。

02 / 随机抽样

把记录打乱后取前 N 条,得到一份无偏样本,用于 QA、问卷、训练集划分。

03 / 机器学习数据预处理

把行格式的数据集在切 train/validation/test 之前打乱,避免源文件里相邻行的相关性污染切分结果。

04 / 问卷顺序随机化

问卷题目或选项的呈现顺序随机化,消除「顺序偏差」,让每个受访者看到的版本都不一样。

使用方法

三个步骤
  1. 01

    粘贴列表

    任何按行组织的文本:参赛者、商品、问卷题目、数据行。

  2. 02

    可选:打开「修剪空白」或「去除空行」

    两者默认都关 —— 洗牌器把每个输入行原样保留到随机位置。打开则先清洗输入再洗牌。

  3. 03

    再次点击执行

    每次点击都产生新的随机顺序。不重复、不丢弃 —— 只是输入的纯排列。

引擎内部

工程笔记
算法
Fisher-Yates(Knuth shuffle)· 原地洗牌

每行最终落到任意位置的概率精确为 1/n(n = 行数)。不存在 sort-by-random-key 那种朴素洗牌带来的偏差。

吞吐
2024 款 M3 MacBook Air 上 5 万行洗牌约 80 ms

O(n) 单次遍历。随机源是浏览器的 Math.random —— 抽奖、问卷、ML 划分够用;不是密码学级别。

线程
文件 ≥ 2 MB 或 ≥ 10 万行时启用 Web Worker

与其他工具相同的 Worker 模式;shuffle 是共享引擎的一个分支。

隐私与限制

数据留在哪里

一切都在浏览器内运行。列表永远不会上传 —— 没有任何服务器能看到你抽奖洗牌了哪些人。单次硬上限 80 MB。

常见问题

问答

洗牌真的是随机的吗?

使用 Fisher-Yates 算法,熵源是浏览器的 Math.random。输入的每种排列出现概率相等。注意:Math.random 不是密码学安全的 —— 用于抽奖、问卷、ML 数据集划分等大多数场景没问题;不适合受监管的彩票开奖等高合规场景。

为什么按两次执行会得到不同顺序?

这是设计如此 —— 每次点击都重新播种、重新洗牌。抗刷新:种子来自 Math.random,与输入无关,所以同样的输入不会产生同样的输出。

会丢失或复制行吗?

不会。洗牌器是纯粹的排列:每个输入行在输出中正好出现一次,只是位置变了。如果你想在一步内同时去重 + 洗牌,请用首页工具并打开「打乱结果」开关。

跟 `sort -R` 或 `shuf` 有什么区别?

结果一样 —— 非密码学 RNG 的 Fisher-Yates。`sort -R` 和 `shuf` 是命令行等价物;这个工具是给那些「从剪贴板粘贴而不是 pipe 文件」的人用的。也不用担心 `sort` 的 locale 相关比较那种奇怪行为。