Один из приемов генерации непоследовательных уникальных номеров — взять последовательный номер и применить к нему маскирующую операцию, например, инвертировать заданные биты, а затем переставить по фиксированной схеме. Пусть у нас будут трехбитные номера от 0 до 7: 000, 001, 010, 011, 100, 101, 110, 111. Сначала инвертируем второй бит: 010, 011, 000, 001, 110, 111, 100, 101. Получаются все те же номера, но уже в другом порядке — 2, 3, 0, 1, 6, 7, 4, 5. Затем, считая что биты нумеруются 321, переставим их в 132: 001, 101, 000, 100, 011, 111, 010, 110 — 1, 5, 0, 4, 3, 7, 2, 6.
Может быть, имеет смысл также добавить контрольную сумму, пусть хоть бит четности — 0010, 1010, 0001, 1001, 0110, 1110, 0101, 1101 или 2, 10, 1, 9, 6, 14, 5, 13. Числа остаются уникальными, и полностью обратимыми, но расползаются по большему диапазону.