Creas un array con suficientes números random (puedes asegurarte que no se repitan, o que no se repitan más de x veces)
En tu bucle luego tomas el nº random que yace en el array cuyo ciclo estás.
Obviamente si el bucle es muy muy grande (pongamos 1 millón), tu array debe ser de dicho tamaño, pero si es enormemente más grande, no resulta práctico, y en algún momento deberían repetirse...
Ahora, si lo que necesitas es que aparezca 1 sola vez todos los números de una lista, es más práctico hacer lo siguiente:
1 - Creas un array de dicho tamaño, en el primer bucle incluyes dichos valores, pongamos que quieres que que aparezcan una sola vez los valores del 35 al 53
declarar Array(0 a 53-35)
bucle para k desde 0 hasta 53-35
array(k) = (k + 35)
siguiente
2 - ...pero están ordenados, como los quieres aleatorios hay que desordenarlos:
bucle para k desde 53-35 hasta 1 regresiva
az = Random(entre 0 y k)
tmp = Array(az)
Array(az) = Array(k)
Array(k) = tmp
siguiente
3 - Ahora ya podrás obtener los valores random, usarlos en tu bucle, y sin reptición... los tomas en orden del array porque en el array ya están colocados al azar y sin repetición (en el ejemplo valores solo del 35 al 53).
bucle para k desde 0 hasta 53-35
valor = array(k)
...
siguiente