Hi,

Have you tried running the loop for more than 5 iteration?

It should always produce the same result at each step.
It can be easily verified by running the script multiple times, the loss remains the same between runs, but differs if the break line is removed.

Do they converge to the same result?

The convergence is not the point, but the reason why the results differ at each step. 

Is it simply because you get different random sample?

Setting np.random.seed(123) should take care of always producing the same sample