updated random()