#include <vector>
#include <chrono>
#include <random>
#include <iostream>

auto main()->int {
  std::vector<std::string> names;			// storage for the names
  names.reserve(5);							// always reserve ahead, for top performance
  names.emplace_back("John");				// emplace instead of push to avoid copies
  names.emplace_back("Jeff");
  names.emplace_back("Emma");
  names.emplace_back("Steve");
  names.emplace_back("Julie");

  std::mt19937_64 engine;	            	// make sure we use a high quality RNG engine
  auto seed((engine, std::chrono::system_clock::now().time_since_epoch().count()));	// RNG seed
  std::uniform_int_distribution<unsigned> dist(0, names.size() - 1);		// distribute linearly
  auto number(dist(engine));				// pick a number corresponding to a name
  std::string name(names.at(number));		// look up the name by number
  std::cout << "Seed: " << seed << ", name: " << name << std::endl;	 // output the name & seed
  return EXIT_SUCCESS;						// don't forget to exit politely
}