Зачем лишние телодвижения на проверки, когда
Код:
repeat
sop1:='Data\images\icon\race\'+inttostr(random(2))+'.png';
t_sop1_pic.Picture.LoadFromFile(Path + sop1);
until stop=true;
по-другому точно не будет
Есть предположение, ошибка возникает внутри модуля PNG, не успевает отработать подгрузку полностью - проверяйте при каждой итерации цикла на содержимое контейнер или принудительно его обнуляйте перед загрузкой новой картинки