Es normal que se den en horarios de 4 horas cátedras, en una grilla de 6 módulos diarios incluyendo horario de mañana y tarde, los 5 días de la semana, los que nos da una grilla de 30 cada módulo ocupa 2 horas cátedras.
La probabilidad de colisión en las primeras 4 horas cátedras es baja, es cero, pero va aumentando a medida que se van tomando más horas cátedras. El máximo admitido por la planilla es de 30 módulos correspondiente a 60 hs cátedras, existe un limitante de 36 hs cátedras como máximo a partir del cual el sueldo se reduce o sea hay un desincentivo a realizar estas actividades. Esta limitante no afecta en la probabilidad pero si será el límite hasta donde nos interese realizar el cálculo.
Aumenta la posible colisión a medida que se van ocupando estos casilleros, es importante resaltar que también pueden estar subdivididos en medios módulos, lo que obligaría a pensar que todo el módulo está cubierto, para simplificar el problema lo dividiremos en sólo módulos. Nunca es conveniente elegir medios módulos porque se hace de cuenta que se utiliza el módulo entero, normalmente los módulos enteros ocupan espacio ineficiente.
Math.ceil(Math.random()*30)
El código anterior genera un número aletarorio correspondiente a un módulo, generalmente se realizan de forma separada los 2 módulos son en la mañana o en la tarde. Por lo que el espacio muestral se reduce a 15 casilleros, donde duplicamos reducimos la probabilidad de colisión a la mitad teniendo la alternativa de la tarde. Muy pocas veces hay horas con horarios en mañana y tarde porque lo descartamos.
tomar=()=>Math.ceil(Math.random()*15)
Es más fácil calcular la probabilidad de colisión.