std::random_device::operator()
From cppreference.com
                    
                                        
                    < cpp | numeric | random | random device
                    
                                                            
                    |   result_type operator()();  | 
(since C++11) | |
Generates a non-deterministic uniformly-distributed random value.
Parameters
(none)
Return value
A random number uniformly distributed in [min(), max()].
Exceptions
Throws an implementation-defined exception derived from std::exception if a random number could not be generated.
See also
|    [static]  | 
  gets the smallest possible value in the output range  (public static member function)  | 
|    [static]  | 
  gets the largest possible value in the output range  (public static member function)  |