docs: def sample_random(self):
          """
          Sample a point in a random leaf.
          
          """
          if self.sampling_mode['volume']:  
              # Choose a leaf weighted by volume, randomly
              if self.leafnode:
                  return self.sample_bounds()
              else:
                  split_ratio = ((self.split_value - self.bounds_x[0,self.split_dim]) / 
                                 (self.bounds_x[1,self.split_dim] - self.bounds_x[0,self.split_dim]))
                  if split_ratio > np.random.random():
                      return self.lower.sample(sampling_mode=['random'])
                  else:
                      return self.greater.sample(sampling_mode=['random'])
          else: 
              # Choose a leaf randomly
              return np.random.choice(self.get_leaves()).sample_bounds()