public byte NextByte()
{
if(0 == _byteBufferState)
{
// Generate 4 more bytes.
uint t = _x^(_x<<11);
_x=_y; _y=_z; _z=_w;
_byteBuffer = _w=(_w^(_w>>19))^(t^(t>>8));
_byteBufferState = 0x4;
return (byte)_byteBuffer; // Note. Masking with 0xFF is unnecessary.
}
_byteBufferState >>= 1;
return (byte)(_byteBuffer >>= 8);
}