... parece como si una vez que Aux_Rand no ha tomado el valor null, ya no lo volviera a tomar más en el bucle y en su comprobación correspondiente If (:"Aux_Rand" is null) porque no hace el Leave adecuado, pero en cambio, al comprobar el valor con OUT_RANDOM, entonces sí que aparece el null.
... no lo entiendo ...