Если вы структурировали свои листья так, чтобы они сохранялись в индексируемом типе данных, таком как массив, то вы можете легко (псевдокод):
random_leaf = leaf_pile[ random( size of leaf pile ) ]
Это хороший, освежающий O1): -)
Конечно, могут быть дыры, поэтому вам, возможно, придется итерировать оттуда.Если он хранится в виде связанного списка, вы можете выполнить итерацию.
Просто предоставьте альтернативу очевидному.Это действительно зависит от вашей структуры данных и вашего наиболее распространенного варианта использования.