В общем случае решения Оли Чарльзворта вы можете выбрать взаимное ограничение с 256 и предварительно умножить каждый байт из вашего ввода на это значение, а затем XOR
все значения вместе. Вы по-прежнему получите равномерное распределение, но для последовательных входов вы получите непоследовательный вывод, например:
byte result = 0;
int q = 33149;
foreach (byte b in BitConverter.GetBytes(input)) result += (byte)(b * q);
За 1, 2, 3, 4, 5, 6, ... он даст вам 125, 250, 119, 244, 113, 238 и т. Д.