Ok, the reason why this doesn't work is because the for loop has to finish executing before the movement commands work, so when the final food piece has been placed, only then will it get to the do...loop. I recommend you make use of the timer() command and a subroutine.
When you place a foodpiece, you set a variable as timer + rnd(1000) in this case (might I note that this is only 1 second, you might want to increase it). Then you put an if-statement in your loop checking whether timer() is greater than the variable. If it is, jump to the subroutine, and add another foodpiece.
AMD Athlon XP2800+
GeForce FX5200 128MB
1024MB DDR 333MHz RAM