Yes it does use a base 0 for indexes, but the python randint function is supposed to return a value between 0 and N-1. I did some testing on this and my test loop ran for 20 minutes without a problem. So randint(100) should be between 0 and 99 inclusive. So when I say randint(len(list)), I should get a valid index providing the len function is giving me an accurate length. There might be a mistake in there somewhere still but I can't find it.