pub trait Randomize {
// Required method
fn random() -> Self
where Self: Sized;
// Provided methods
fn rand_list0(range: u32) -> Vec<Self>
where Self: Sized { ... }
fn rand_list1(range: u32) -> Vec<Self>
where Self: Sized { ... }
fn list(size: u16) -> Vec<Self>
where Self: Sized { ... }
}