Нет, ваш алгоритм не масштабируется. То, что я сделал раньше, это выдача чисел последовательно (+1 каждый раз), а затем передача их через операцию XOR для перемешивания битов, что дает мне, казалось бы, случайные числа. Конечно, они не случайны, но они так выглядят для пользователей.
[Изменить] Дополнительная информация
Логика этого алгоритма выглядит следующим образом: вы используете известную последовательность для
генерировать уникальные числа, а затем вы определенно манипулируете ими,
поэтому они больше не выглядят серийно. Общее решение заключается в использовании
некоторая форма шифрования, которая в моем случае была триггером XOR, потому что
это так быстро, как он может получить, и он выполняет гарантию того, что номера
никогда не столкнется.
Однако вы можете использовать другие формы шифрования, если вы хотите, чтобы еще больше
случайные числа, превышающие скорость (скажем, вам не нужно генерировать много
идентификаторы одновременно). Теперь важный момент при выборе алгоритма шифрования
является «гарантией того, что числа никогда не столкнутся». И способ доказать, может ли алгоритм шифрования выполнить
эта гарантия состоит в том, чтобы проверить, если исходный номер и результат
шифрование имеет одинаковое количество бит, и что алгоритм
обратимый (биекция).
[Благодарю Адама Лисса & CesarB за расширение на решение]