added random iterator