Use random.uniform(a, b):

Returns a random floating point number N such that a <= N <= b for a <= b and b <= N <= a for b < a.

The end-point value b may or may not be included in the range depending on floating-point rounding in the equation a + (b-a) * random().

>>> random.uniform(1.5, 1.9)
1.8733202628557872