При всего двух возможных значениях переменной – 0 или 1 – остаток от деления на 2 не имеет смысла.ДА, но варьировать разброс сдвига - проще.
как «качество» измеряли?Оценка выпадений близких по значению цепочек. Они стали короче и реже, чем при нативном mt_rand().
чем псевдослучайнось чистого mt_rand() пересолена? Как измерить разбавляемое?Процентное соотношение значений цепочек, близких по значению.
зачем %2, если там и так либо 0 либо 1.Для корректного сдвига.
[1] => 999845
[2] => 1000340
[6] => 1001172
[9] => 1001192
[4] => 1001734
[2] => 1000100
[4] => 1000188
[3] => 1000258
[9] => 1000610
[6] => 1000795
4) Нет такой волшебной кнопкито, что такая кнопка - есть.
Лучше бы написали по заданным вопросам)Легко: DAG.