Necesito un algoritmo que me cree una lista ordenada de varios elementos, seleccionándolos en función de un factor de prioridad y una variable aleatoria.
El factor de prioridad lo tienen todos los elementos, y pertenece al intervalo (0;1]. Es constante.
La variable aleatoria permite que, aunque el factor de prioridad de un elemento sea muy pequeño, también aparezca, aunque sea muy de vez en cuando; y aunque un elemento tenga el factor de prioridad muy alto, no aparezca siempre el primero.
Lo he estado pensando pero no doy con la solución.
Me interesa que cuanto mayor sea el factor de prioridad, mayor sea la frecuencia con la que sea seleccionado y aparezca en primer lugar.
CASO DE PRUEBA:
Elemento A: factor de prioridad = 2/3,
Elemento B: factor de prioridad = 1/3.
Pues quiero que el elemento A salga el primero el doble de veces que el elemento B tras varias iteraciones.
Muchísimas gracias de antemano