pub fn random<Rng: IterSource<u32>>(&self, rng: &mut Rng) -> Nat {
        if self.is_nan() || self == &0u32 {
            return Nat::nan();
        }
        
        let mut nat = Nat::with_capacity(self.num());
        self.random_inner(&mut nat, rng);
        nat
    }
/// generate a random number that belong to the range of [0, self)
generate a random number that belong to the range of [0, self)
generate a random number that belong to the range of [ 0 self )
pub fn random<Rng: IterSource<u32>>(&self, rng: &mut Rng) -> Nat {
        if self.is_nan() || self == &0u32 {
            return Nat::nan();
        }
        let mut nat = Nat::with_capacity(self.num());
        self.random_inner(&mut nat, rng);
        nat
    }
pub fn random < Rng : IterSource < u32 > > ( & self , rng : & mut Rng ) -> Nat { if self . is_nan ( ) || self == & 0u32 { return Nat :: nan ( ) ; } let mut nat = Nat :: with_capacity ( self . num ( ) ) ; self . random_inner ( & mut nat , rng ) ; nat }
generate a random number that belong to the range of [0, self)
generate a random number that belong to the range of [ 0 self )
&self
rng
&mut Rng
&self
rng
&mut Rng