I tried
use std::rand::{task_rng, Rng};
fn main() {
    // a number from [-40.0, 13000.0)
    let num: f64 = task_rng().gen_range(-40.0, 1.3e4);
    println!("{}", num);
}
but this gives
error[E0432]: unresolved import `std::rand::task_rng`
 --> rand.rs:1:17
  |
1 | use std::rand::{task_rng, Rng};
  |                 ^^^^^^^^ no `task_rng` in `rand`
error[E0432]: unresolved import `std::rand::Rng`
 --> rand.rs:1:27
  |
1 | use std::rand::{task_rng, Rng};
  |                           ^^^ no `Rng` in `rand`
error[E0603]: module `rand` is private
 --> rand.rs:1:17
  |
1 | use std::rand::{task_rng, Rng};
  |                 ^^^^^^^^
error[E0603]: module `rand` is private
 --> rand.rs:1:27
  |
1 | use std::rand::{task_rng, Rng};
  |                           ^^^
and I tried
extern crate rand;
use rand::Rng;
fn main() {
    let mut rng = rand::thread_rng();
    if rng.gen() {
        // random bool
        println!("i32: {}, u32: {}", rng.gen::<i32>(), rng.gen::<u32>())
    }
    let tuple = rand::random::<(f64, char)>();
    println!("{:?}", tuple)
}
and got
error[E0425]: cannot find function `thread_rng` in module `rand`
 --> rand.rs:5:29
  |
5 |         let mut rng = rand::thread_rng();
  |                             ^^^^^^^^^^ not found in `rand`
  |
help: possible candidate is found in another module, you can import it into scope
  |     use std::__rand::thread_rng;
error[E0425]: cannot find function `random` in module `rand`
  --> rand.rs:10:27
   |
10 |         let tuple = rand::random::<(f64, char)>();
   |                           ^^^^^^ not found in `rand`
error: use of unstable library feature 'rand': use `rand` from crates.io (see issue #27703)
 --> rand.rs:1:5
  |
1 |     extern crate rand;
  |     ^^^^^^^^^^^^^^^^^^
error: use of unstable library feature 'rand': use `rand` from crates.io (see issue #27703)
 --> rand.rs:2:9
  |
2 |     use rand::Rng;
  |         ^^^^^^^^^
 
    