def random_floats(seed, min, max, n):
    """
    Linear congruential random number generator to create n random float values in a range of [min,max]
    """
    #Constants from Numerical Recipes
    #Modulus 2**32
    m = 4294967296 
    a = 1664525
    c = 1013904223

    rand_max = m-1
    rand_range = float(max-min)
    xi = seed%m
    xf = min+float(xi)/float(rand_max)*rand_range
    xl = [xf]
    for i in range(n-1):
        xi = (a*xi + c)%m
        xf = min+float(xi)/float(rand_max)*rand_range
        xl.append(xf)
    return xl