/// <summary>
 /// Returns a random sample from the discrete distribution.
 /// </summary>
 /// <returns>A new random sample.</returns>
 public int Sample()
 {
     return(DiscreteDistribution.Sample(_rng, _dist));
 }
 /// <summary>
 /// Fills the provided span with random samples from the discrete distribution.
 /// </summary>
 /// <param name="span">The span to fill with random samples.</param>
 public void Sample(Span <int> span)
 {
     DiscreteDistribution.Sample(_rng, _dist, span);
 }
 /// <summary>
 /// Fill an array with samples from a distribution.
 /// </summary>
 /// <param name="buf">The array to fill with samples.</param>
 public void Sample(int[] buf)
 {
     DiscreteDistribution.Sample(_rng, _dist, buf);
 }