Эвен-Мансур — это теоретическая модель для подтверждения результатов безопасности. Нужно было бы попробовать перестановки $n$ биты, скажем, для $n=128,$ так как полученное пространство $N=2^n$ объекты были бы слишком большими, чтобы их можно было хранить или манипулировать ими. Это похоже на то, что никто не использует чисто случайное равнораспределенное и i.i.d. последовательность битов как ключевой поток в режиме OTP в современной криптографии. Это слишком медленно.
Однако следующий алгоритм дает случайную перестановку на $\{1,2,\ldots, N\}.$ Здесь не делается никаких заявлений об оптимальной эффективности.
КОД ДЛЯ СЛУЧАЙНОЙ ПЕРЕСТАНОВКИ МАЛЕНЬКОГО СПИСКА
Вход: Список $A=[1,2,\ldots, N]$ из $N=2^n$ Предметы.
Задача: переставить значения в $А$ случайно.
Позволять $S:=\{u: и \in A\}.$ Позволять $В:=А$
для каждого $i=1,\ldots,N$ делать
$\quad$ Выберите случайное целое число $j \в S$
$\quad$ Изменить массив $В$ с помощью $B[j]:=A[i]$
$\quad$ Удалять $j$ из набора $S$
конец для
Этот алгоритм выбирает $N,$ тогда $N-1$, тогда $N-2$ объекты единообразно и могут генерировать каждую перестановку с равной вероятностью, поскольку это делает $N\!$ выбор.
Вывод: Список $А$ теперь случайно.
Существуют более эффективные способы выборки случайных перестановок, см., например, Йенс Густедт, «Эффективная выборка случайных перестановок», Журнал дискретных алгоритмов, Том. 6, выпуск 1, 2006 г. Также взгляните на перетасовку Фишера-Йейтса и перетасовку Кнута, Google вам в помощь.
Приведенный ниже алгоритм не совсем подходит, спасибо @kelalaka за исправление.
Вход: Список $A=\{1,2,\ldots, N\}$ из $N=2^n$ Предметы.
Задача: переставить значения в $А$ случайно.
для каждого $i=0,\ldots,N-1$ делать
$\quad$ Выберите случайное целое число $j$ с $i<j<N.$
$\quad$ Поменять местами записи $А[я]$ и $А[j].$
конец для
Вывод: Список $А$ теперь случайно.