This should work, but might return less than n
edges:
def get_rand_edges(g, n):
visited = set()
results = []
edges = random.sample(g.edges(), n)
for edge in edges:
if edge[0] in visited or edge[1] in visited:
continue
results.append(edge)
if len(results) == n:
break
visited.update(edge)
return results