Podrías usar un conjunto para almacenar los índices de países ya obtenidos:
Código Delphi
[-]
var
Repartidos: set of Byte;
Cada vez que necesites un nuevo número aleatorio haces un ciclo hasta encontrar uno que no hayas ya usado:
Código Delphi
[-]
repeat
Indice := Random(50) + 1;
until not (Indice in Repartidos);
Repartidos := Repartidos + [Indice];
// Saludos