Use rand as its own crate

This is due to a change in the layout of the Rust `std`, from which `rand` was removed as its own crate.