Io ho puntualizzato dato che nel tuo post non si parlava di indicizzare un array, ma di generare un numero (intero) pseudorandom. E dato che il tuo post voleva generalizzare, ho solo aggiunto quel poco che può tornar utile altre volte.
Poi, ovviamente, tutti gli altri punti della discussione sono validi e vanno tenuti in conto.