In case this is mens as a serious problem, we can’t see any problem in the code that has been posted. Random.Range does for sure work properly. If it returns the same value every time you have to set a constant seed each time before you call Random.Range or you reset the internal state manually somewhere.
ps: The int cast is unnecessary:
fallRange = (int)Random.Range (-10, 10);
as Range as two overloads, one that takes float values which return a float value and one that takes int values and returns an int. Since you pass two int values (-10 and 10) the returned value is an int in the range -10 to 9