Das "randomize" in deiner Schleife ist bestimmt nicht mit absicht gewesen oder? "randomize" sollte man nur einmal beim programmstart aufrufen, am besten im formcreate.
mein vorschlag um dein problem zu lösen:
Delphi-Quellcode:
function throwFood():boolean;
begin
foodposx := (random(17)+3)*10; // zufallszahl von 30 bis 190 in 10er schritten
foodposy := (random(17)+3)*10; // zufallszahl von 30 bis 190 in 10er schritten
Form1.ShapeFood.Left := foodposx;
Form1.ShapeFood.Top := foodposy;
end;