Software generador aleatorio (PRNG): Software RNG's utiliza algoritmos matemáticos para generar números aleatorios. Iniciando el algoritmo con un valor origen derivado de una repetitiva operación en el ordenador, como por ejemplo acciones en el teclado, procesos comunes, el reloj del ordenador o los movimientos del ratón. En cualquier caso, esto es extremadamente difícil conseguirlo a partir de un valor origen aleatorio, puesto que la mayoría de las operaciones sólo proveen orígenes desde un reducido número de valores.
El reto del software RNG's es que la secuencia de números basada en el rango origen es completamente determinista, puesto que su creación se basa en un software algorítmico. De este modo, incluso si el valor origen es absolutamente aleatorio, los números creados por el RNG son predicables si alguien puede desvelar el algoritmo utilizado para producirlos. Puesto que los números creados por el software PNG's no son considerados verdaderamente aleatorios, sino pseudoaletorios y el software RNG's que los genera es conocido como Generador de números pseudoaleatorios (PRNG's).
Hardware generador aleatorio (TRNG): Hardware RNGs no requiere valor origen porque el hardware numérico aleatorio no computa valores; estos no se derivan de un algoritmo repetitivo. De hecho, el hardware generador de números aleatorios son copias digitalizadas de comunes ruidos naturales. Ya que no hay secuencias algorítmicas ni repetitivas secuencias de números, incluso si un "hacker" pudiera determinar uno de los números, éste no sería capaz de predecir los números sucesivos. Por esta razón, el hardware RNGs es considerado como Generador de números verdaderamente aleatorios o TRNGs.