code: def random_selection_order(
      random: Random,
  ) -> Callable[[int, int], Iterable[int]]:
      """Select choices uniformly at random."""
  
      def selection_order(depth: int, n: int) -> Iterable[int]:
          pending = LazySequenceCopy(range(n))
          while pending:
              yield pop_random(random, pending)
  
      return selection_order
  
file_path: catboost/contrib/python/hypothesis/py3/hypothesis/internal/conjecture/choicetree.py
imports: from collections import defaultdict
  from random import Random
  from typing import Callable, Dict, Iterable, List, Optional, Sequence
  from hypothesis.internal.conjecture.junkdrawer import LazySequenceCopy, pop_random
label_desc: Use image node_id 2 for calling a global function with example usage: random_selection_order(random) and returns: selection_order