Pues dicho código que tienes como "válido" si puede fallar, ya que al obtener el índice por azar puede que eventualmente te de el mismo índice.
Una forma infalible sería así:
PDTA: y no te dije vago, hablé en general, si te quedó el saco ya no es mi culpa.