code: private List<Pair<Integer, Integer>> doGenerateEdgesSimpler() {
          final int numberOfNodes = getConfiguration().getNumberOfNodes();
          final long numberOfEdges = getConfiguration().getNumberOfEdges();
  
          final Set<Pair<Integer, Integer>> edges = new HashSet<>();
  
          while (edges.size() < numberOfEdges) {
              int origin = random.nextInt(numberOfNodes);
              int target = random.nextInt(numberOfNodes);
  
              if (target == origin) {
                  continue;
              }
  
              edges.add(Pair.of(origin, target));
          }
  
          return new LinkedList<>(edges);
      }
docs: This algorithm is implemented as recommended in
  <p/>
  Efficient generation of large random networks
  by Vladimir Batagelj and Ulrik Brandes
  <p/>
  PHYSICAL REVIEW E 71, 036113, 2005
  
  @return edge list