code: private List<T> randomChoose(List<T> servers, int toChoose) {
          int size = servers.size();
          if (toChoose >= size || toChoose < 0) {
              return servers;
          } 
          for (int i = 0; i < toChoose; i++) {
              int index = random.nextInt(size);
              T tmp = servers.get(index);
              servers.set(index, servers.get(i));
              servers.set(i, tmp);
          }
          return servers.subList(0, toChoose);        
      }
docs: Randomly shuffle the beginning portion of server list (according to the number passed into the method)
  and return them.
  
  @param servers
  @param toChoose
  @return