Si cur_odds se cambia rara vez podría implementar el siguiente algoritmo:
1) Crea otra columna prob_sum , por lo que
2) Generar un número aleatorio del 0 al 1:
3) Encuentra la primera fila para la cual prob_sum > rnd (si crea un índice BTREE en el prob_sum , la consulta debería funcionar mucho más rápido):