It has always seemed strange to me that random.randint(a, b) would return an integer in the range [a, b], instead of [a, b-1] like
random.randint(a, b)
[a, b]
[a, b-1]
I don't think there's a reason for that. But at least it's documented.