Come i computer generano numbers casuali?

Come fa un computer generare numbers "casuali"?

Quanto vicino a veramente 'random' può essere un numero generato da un computer?

C'è un software / linguaggio di programmazione che potrebbe generare un numero più "random" rispetto ad altri?

Molte implementazioni comuni di generatori di numbers casuali, non sono veramente casuali. I computer usano tipicamente Pseudorandom Number Generators , il che significa che il computer utilizza un algorithm definito per generare una sequenza di numbers che sembrano essere casuali.

In Python è ansible utilizzare il module random per generare numbers pseudorandom. Tuttavia, se si esaminano i documenti, includono questa nota:

Attenzione I generatori pseudo-casuali di questo module non devono essere usati per scopi di sicurezza. Usare os.urandom () o SystemRandom se si richiede un generatore di numbers pseudo-casuali protetti da crittografia.