Estoy asumiendo que almacene las frecuencias como números de punto flotante entre 0 y 1 que el total para hacer 1.
En primer lugar debe preparar una tabla de frecuencias acumulativas, es decir, la suma de la frecuencia de esa carta y todas las cartas antes de ella.
Para simplificar, si se inicia con esta distribución de frecuencias:
A 0.1
B 0.3
C 0.4
D 0.2
Su tabla de frecuencia acumulativa sería:
A 0.1
B 0.4 (= 0.1 + 0.3)
C 0.8 (= 0.1 + 0.3 + 0.4)
D 1.0 (= 0.1 + 0.3 + 0.4 + 0.2)
Ahora generar un número aleatorio entre 0 y 1 y ver dónde en esta lista que se encuentra número. Elegir la letra que tiene la frecuencia acumulada más pequeño más grande que su número al azar. Algunos ejemplos:
Digamos que usted escoge al azar 0.612. Esta se encuentra entre 0,4 y 0,8, es decir, entre B y C, por lo que elegiría C.
Si su número al azar fue 0,039, lo que viene antes de 0,1, es decir, antes de que A, así que elige A.
Espero que tiene sentido, si no se siente libre de pedir aclaraciones!