Il random è in realta uno pseudo random. Qual è il metodo piu' affidabile per generare dei numeri casuali?

Questo è quello che mi è successo e come ho risolto il problema. In ogni caso il risultato non mi convince pienamente...

Utilizzando questo script, e importando il risultato in un db access, contando i duplicati, mi è uscito un risultato simile a questo

1= 15% circa
2= 30% circa
3= 30% circa
4= 15% circa

ecco il codice:

codice:
<%
i = 0
While not i > 10000

	Randomize()
	Nrandom = CInt((4 - 1)*Rnd() + 1 )
	
	Response.Write "
" & Nrandom

i = i + 1
WEND
%>
allora ho applicato il seguente "correttivo" per portare il risultato dei "grandi numeri" su delle cifre piu' accettabili:
codice:
<%
i = 0
While not i > 10000

	Randomize()
	Nrandom = CInt((5 - 1)*Rnd() + 1 )
	
	'correttivo 
	If Nrandom = 5 THEN
		Nrandom = 1
	END IF

	Response.Write "
" & Nrandom

i = i + 1
WEND
%>

Infatti così facendo sono riuscito a grandi linee a ridistribuire euqamente la casualità di 10000 estrazioni su 4 numeri, avvicinandomi a quello che dovrebbe a grandi linee essere 25% per numero.

Questo è uno dei test effettuati con il correttivo.

Valore - NumDuplicati
1 - 1995
2 - 2651
3 - 2737
4 - 2618

Nonostante il correttivo il caso 1 è parecchio (oltre il 20%) sotto la media (che dovrebbe essere circa 2500)


La legge dei grandi numeri non è una scenza esatta, pero' la differenza di piu' del 20 % mi sembra TROPPA