#define ARC4RANDOM_MAX 0x100000000

 

Your code means this:

return(((float)arc4random()/ ARC4RANDOM_MAX)* num2)- num1 + num1;

You need parentheses around num2-num1:

return((float)arc4random()/ ARC4RANDOM_MAX)*(num2-num1)+ num1;