La respuesta a esta pregunta es que hay muchas respuestas, pero el enfoque más común es utilizar un registro de desplazamiento de retroalimentación lineal. Comencé con esta idea y formé dos registros de desplazamiento de 8 bits (parte CD54 / 74AC164E de TI) sincronizados con un temporizador 555 en modo astable. Dejé flotando las entradas seriales de datos de los registros de desplazamiento. Antes de agregar puertas XOR (la parte de realimentación lineal), probé este circuito con LED para visualizar lo que está sucediendo. Como resultado, los dos registros de desplazamiento comienzan en diferentes estados (probablemente porque sus entradas de datos están flotando). Sus estados permanecen sin sincronizar a medida que continúan cambiando, como se puede ver en este video:
enlace
Los dos registros de desplazamiento de 8 bits están en la región central de mi tablero. A la derecha hay un temporizador 555 en modo astable que proporciona un impulso de reloj de aproximadamente 1 vez por segundo. A la izquierda hay un regulador de 5 voltios, esta parte es irrelevante si tiene la tensión de alimentación de CC correcta, pero la mía es de 12 VCC.
Quizás este enfoque pirateado es toda la aparente aleatoriedad que necesito (soy un artista, no un criptógrafo). Si no, agregaré retroalimentación lineal y / o seguiré los consejos de @ crj11 a continuación con respecto a la explotación de las características metaestables de los flip flops (que están dentro de los registros de turnos). De cualquier manera, creo que al usar múltiples registros de turnos y múltiples temporizadores 555 no necesitaré mucha retroalimentación y, ciertamente, nada de lujo para hacer que el sistema aparezca al azar, aunque no lo sea, técnicamente .
En cuanto a la frecuencia de mis eventos (a menudo, a veces, raramente ...), planeo registrar diferentes registros de desplazamiento a diferentes velocidades. La aplicación de puertas lógicas a las salidas de estos diferentes registros (a diferentes velocidades de reloj) debería proporcionarme las categorías generales de frecuencia de eventos que estoy buscando, ya que las velocidades de reloj más rápidas darán como resultado "positivos" más lógicos (o cualquiera que sea la terminología correcta) . Espero que esto tenga sentido.
A continuación hay algunos recursos para personas que, como yo, no conocen la terminología correcta o no entienden cómo se utilizan los registros de desplazamiento para la generación de números pseudoaleatorios.
Buena descripción general para responder a la pregunta "¿Qué es un registro de desplazamiento de retroalimentación lineal" (LFSR):
enlace
Al elegir las pulsaciones para un registro de desplazamiento de realimentación lineal:
enlace
Mini proyecto sobre cómo implementar un LFSR: enlace
Otro documento útil sobre el uso de un LFSR de 8 bits (es decir, el chip CD54 / 74AC164 de Texas Instruments):
enlace