Quisiera aportar un poco de información al asunto.
He visto el código que muestra Seoane y me he preguntado: ¿No es demasiado procesamiento hacer operaciones de corrimiento de bits?
Yo hago empleo de geenradores multiplicativos congrenciales mixtos y multiplicativos... que son los más usados y mejores.
Haz una búsqueda en los foros.... he posteado en más de una ocasión sobre esto.. no se si te sirva.. pero con aportar un poco no se pierde nada.
Saludos,