diff --git a/tools/integration-tests/tester/framework/framework.go b/tools/integration-tests/tester/framework/framework.go
index 3d104fd5e16f82727b022cffa1edd83d1a0274ef..32c7da0d93634871a28444ab76cde5b5e9b5290f 100644
--- a/tools/integration-tests/tester/framework/framework.go
+++ b/tools/integration-tests/tester/framework/framework.go
@@ -153,5 +153,12 @@ func (f *Framework) CreateDRNGNetwork(name string, members, peers int) (*DRNGNet
 		}
 	}
 
+	// wait until peers are fully started and connected
+	time.Sleep(1 * time.Second)
+	err = drng.network.WaitForAutopeering(3)
+	if err != nil {
+		return nil, err
+	}
+
 	return drng, nil
 }
diff --git a/tools/integration-tests/tester/tests/drng_test.go b/tools/integration-tests/tester/tests/drng_test.go
index 63de5b4666e10b0c3d98b22a92c5c495086fee22..fff44925cb22d66313e0d71827947472e2828be6 100644
--- a/tools/integration-tests/tester/tests/drng_test.go
+++ b/tools/integration-tests/tester/tests/drng_test.go
@@ -1,6 +1,7 @@
 package tests
 
 import (
+	"encoding/hex"
 	"log"
 	"testing"
 	"time"
@@ -17,22 +18,28 @@ func TestDRNG(t *testing.T) {
 
 	// wait for randomness generation to be started
 	log.Printf("Waiting for randomness generation to be started...\n")
-	time.Sleep(70 * time.Second)
+	time.Sleep(100 * time.Second)
 
 	peers := len(drng.Peers())
+	randomnessMap := make(map[string]int)
 
 	// check for randomness on every peer
 	for i := 0; i < 3; i++ {
-		randomness := make([][]byte, peers)
-		for j, peer := range drng.Peers() {
+		for _, peer := range drng.Peers() {
 			resp, err := peer.GetRandomness()
 			require.NoError(t, err)
 			log.Println(resp)
-			randomness[j] = resp.Randomness
-		}
-		for i := 1; i < peers; i++ {
-			require.Equal(t, randomness[0], randomness[i])
+			randomnessMap[hex.EncodeToString(resp.Randomness)]++
 		}
+		// wait for the next randomness
 		time.Sleep(10 * time.Second)
 	}
+
+	// check that we got at least 3 different random values
+	require.GreaterOrEqual(t, len(randomnessMap), 3)
+
+	// check that each random values has been received by all the peers.
+	for _, v := range randomnessMap {
+		require.GreaterOrEqual(t, v, peers)
+	}
 }