diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1f78b4c870532348468b291144d5dbd40d927f91..2256a2f1cedbe4ca991b650b38e3951333409238 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -11,8 +11,8 @@ test:
       - .gradle/caches
 
   script:
-    - ./gradlew --no-daemon animalSnifferMain animalSnifferTest
-    - ./gradlew --no-daemon test
+    - ./gradlew --no-daemon -Djava.security.egd=file:/dev/urandom animalSnifferMain animalSnifferTest
+    - ./gradlew --no-daemon -Djava.security.egd=file:/dev/urandom test
 
   after_script:
     # these file change every time but should not be cached
diff --git a/bramble-android/build.gradle b/bramble-android/build.gradle
index 09129b5a63c592b0a0ebf5272c5450d99168e79a..56e36842b0c7dd30d6af900ac85be7840b4a240b 100644
--- a/bramble-android/build.gradle
+++ b/bramble-android/build.gradle
@@ -55,3 +55,8 @@ project.afterEvaluate {
 		into 'src/main/res/raw'
 	}
 }
+
+tasks.withType(Test) {
+	// Use entropy-gathering device specified on command line, if any
+	systemProperty 'java.security.egd', System.getProperty('java.security.egd')
+}
diff --git a/bramble-api/build.gradle b/bramble-api/build.gradle
index fc1634e8c0d8a45f7a0c5c45c3a0accf11ae7627..520d5bf88f51e0bd33913d2ad902b07f17d0ac60 100644
--- a/bramble-api/build.gradle
+++ b/bramble-api/build.gradle
@@ -31,3 +31,8 @@ task jarTest(type: Jar, dependsOn: testClasses) {
 artifacts {
 	testOutput jarTest
 }
+
+tasks.withType(Test) {
+	// Use entropy-gathering device specified on command line, if any
+	systemProperty 'java.security.egd', System.getProperty('java.security.egd')
+}
diff --git a/bramble-core/build.gradle b/bramble-core/build.gradle
index 1a5e234b97ca6eefbf69f213f237f6f96add0a13..eec6c43879d0f21c83332d5764d8bf182360a6da 100644
--- a/bramble-core/build.gradle
+++ b/bramble-core/build.gradle
@@ -44,3 +44,8 @@ task jarTest(type: Jar, dependsOn: testClasses) {
 artifacts {
 	testOutput jarTest
 }
+
+tasks.withType(Test) {
+	// Use entropy-gathering device specified on command line, if any
+	systemProperty 'java.security.egd', System.getProperty('java.security.egd')
+}
diff --git a/bramble-j2se/build.gradle b/bramble-j2se/build.gradle
index 405795bb4bdddf2e57fabfe679315fdc1a9eafc2..e772586016618eb5bc00ff9cc42e7283e3cd0bfb 100644
--- a/bramble-j2se/build.gradle
+++ b/bramble-j2se/build.gradle
@@ -26,5 +26,7 @@ dependencies {
 }
 
 tasks.withType(Test) {
+	// Use entropy-gathering device specified on command line, if any
+	systemProperty 'java.security.egd', System.getProperty('java.security.egd')
 	systemProperty 'java.library.path', 'libs'
 }
diff --git a/briar-android/build.gradle b/briar-android/build.gradle
index 564c6e6c4499b9eb67798d3e9cdb0ff56e0c3b40..d9e68377505e960730090713fd49e5ccff969076 100644
--- a/briar-android/build.gradle
+++ b/briar-android/build.gradle
@@ -186,4 +186,7 @@ project.afterEvaluate {
 	preBuild.dependsOn.add(verifyTranslations)
 }
 
-
+tasks.withType(Test) {
+	// Use entropy-gathering device specified on command line, if any
+	systemProperty 'java.security.egd', System.getProperty('java.security.egd')
+}
diff --git a/briar-api/build.gradle b/briar-api/build.gradle
index 6331e5edd5227490e438888b5d292681c5f9fe08..e5f288e55b6b0d66286856f2ed9b6cd23ee32d39 100644
--- a/briar-api/build.gradle
+++ b/briar-api/build.gradle
@@ -11,3 +11,8 @@ dependencies {
 
 	signature 'org.codehaus.mojo.signature:java16:1.1@signature'
 }
+
+tasks.withType(Test) {
+	// Use entropy-gathering device specified on command line, if any
+	systemProperty 'java.security.egd', System.getProperty('java.security.egd')
+}
diff --git a/briar-core/build.gradle b/briar-core/build.gradle
index f3fad0cba86197a5caed1609471c5b2c9a3a98f2..6fb4231dc03747ea98f5ea3585ec27352cc0b78d 100644
--- a/briar-core/build.gradle
+++ b/briar-core/build.gradle
@@ -32,3 +32,8 @@ dependencies {
 
 	signature 'org.codehaus.mojo.signature:java16:1.1@signature'
 }
+
+tasks.withType(Test) {
+	// Use entropy-gathering device specified on command line, if any
+	systemProperty 'java.security.egd', System.getProperty('java.security.egd')
+}