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]
This is speculation, but normal human usage of 'give me a random number from a to b' is inclusive. Implementing it that way sort of makes sense, given Python's general philosophy of being a more human-readable language.