Блог
Текстовые утилиты

Перемешать строки списка случайным образом

Вставьте список, по одному пункту на строку, — и строки вернутся в новом случайном порядке: каждый пункт остаётся тем же самым, меняется только порядок. Нажмите «Перемешать ещё раз» для нового случайного порядка без повторного набора текста.

Результат

Строк перемешано

У этой страницы вообще нет серверной части. Вставленная таблица разбирается кодом JavaScript внутри вашего же браузера, график рисуется на элементе canvas на вашей машине, файл экспорта собирается локально. Ничего не загружается, не хранится и не пишется ни в какие логи. После загрузки страницы можно отключить сеть — всё продолжит работать, и это самый простой способ проверить обещание самостоятельно.

Факты и границы применимости

Алгоритм Тасовка Фишера—Йетса — все возможные порядки равновероятны
Что меняется Только порядок строк; текст каждой строки не трогается
Источник случайности Math.random() браузера, заново для каждого перемешивания
Повторный запуск Нажмите «Перемешать ещё раз» для нового порядка того же списка
Пустые строки Считаются обычным пунктом и могут оказаться где угодно, включая начало и конец
Дубликаты Сохраняются как есть; одинаковые строки могут случайно оказаться рядом

Когда этот метод вводит в заблуждение

Как это считается

Текст разбивается на строки, список строк копируется, чтобы исходный порядок в поле не менялся, пока вы сами не решите сохранить результат.

Затем тасовка Фишера—Йетса проходит по копии от последнего элемента ко второму, меняя каждый местами со случайным более ранним элементом, выбранным через Math.random() — это стандартный алгоритм перемешивания, при котором все перестановки равновероятны.

В отличие от наивных подходов (например, сортировки по случайному ключу), у Фишера—Йетса нет смещения в сторону какого-либо конкретного порядка — это важно, если результат используется для чего-то похожего на честный жребий.

«Перемешать ещё раз» запускает тот же самый алгоритм заново для текущего текста, не требуя трогать поле ввода, — можно перезапускать сколько угодно, пока порядок не понравится.

Вопросы и ответы

Перемешивание действительно случайное?

Используется алгоритм Фишера—Йетса — он математически несмещён, все порядки равновероятны. Сама случайность берётся из Math.random() браузера — этого достаточно для повседневных задач, но не для розыгрышей с высокими ставками.

Можно получить одно и то же перемешивание дважды?

Специально — нет: каждое нажатие «Перемешать ещё раз» использует новую случайность. Если нужен воспроизводимый порядок, эта утилита не подойдёт.

Удаляются ли дубликаты или пустые строки?

Нет, утилита только меняет порядок. Если нужно сначала убрать дубликаты, воспользуйтесь утилитой удаления повторяющихся строк.

А если в списке всего одна строка?

Одной строке некуда деваться, поэтому результат совпадёт со входом — это всё равно корректно «перемешанный» список из одного элемента.

Мой список куда-то отправляется?

Нет. Перемешивание целиком выполняется в вашем браузере, ничего не отправляется на сервер.

Похожие утилиты

Все утилиты