/**
   * @param seed the random seed
   * @param training the training data
   */
  public TrainingGenerator(long seed, Collection<String> training) {

    this.names = Lists.newArrayList(training);
    Random random = new FastRandom(seed);

    for (int i = names.size(); i > 1; i--) {
      Collections.swap(names, i - 1, random.nextInt(i));
    }
  }