Насколько велико количество генерируемых битов? Если он не больше нескольких миллионов, и, учитывая, что вы не используете генератор для криптографии, я думаю, что самым быстрым из возможных способов будет предварительный расчет большого набора целых чисел с правильным распределением, преобразование его в текст файл вроде этого:
unsigned int numbers[] =
{
0xABCDEF34, ...
};
, а затем скомпилируйте массив в вашу программу и пройдитесь по нему один раз за раз.
Таким образом, вы получаете 32 бита при каждом вызове (на 32-битном процессоре), время генерации является самым коротким из возможных, поскольку все числа генерируются заранее, а распределение контролируется вами. Недостатком является, конечно, то, что эти числа вовсе не случайны, что в зависимости от того, для чего вы используете PRNG, может иметь или не иметь значения.