10**( log(1/(1-rand()))/log(2) ) - 1 #### 10**( -log(1-rand())/log(2) ) - 1 # (same thing) (1-rand())**(log(.1)/log(2)) - 1 # (same thing)