diff --git a/tests/testRandom.c b/tests/testRandom.c
index a550273c63d1cac048e511c8c48908ec8376441e..8b5fef5f7f004543e5925fd4d13ff190859558d3 100644
--- a/tests/testRandom.c
+++ b/tests/testRandom.c
@@ -255,30 +255,45 @@ int main(int argc, char* argv[]) {
 
     /* Verify that the mean and variance match the expected values for a uniform
      * distribution */
-    const double tolmean = 2e-4;
-    const double tolvar = 1e-3;
-    const double tolcorr = 4e-4;
-
-    if ((fabs(mean - 0.5) / 0.5 > tolmean) ||
-        (fabs(var - 1. / 12.) / (1. / 12.) > tolvar) ||
-        (correlation > tolcorr) || (correlationID > tolcorr) ||
-        (fabs(meanID - 0.5) / 0.5 > tolmean) ||
-        (fabs(varID - 1. / 12.) / (1. / 12.) > tolvar) ||
-        (corr_star_sf > tolcorr) || (corr_star_se > tolcorr) ||
-        (corr_star_bh > tolcorr) || (corr_sf_se > tolcorr) ||
-        (corr_sf_bh > tolcorr) || (corr_se_bh > tolcorr) ||
-        (fabs(mean_sf - 0.5) / 0.5 > tolmean) ||
-        (fabs(mean_se - 0.5) / 0.5 > tolmean) ||
-        (fabs(mean_bh - 0.5) / 0.5 > tolmean) ||
-        (fabs(var_sf - 1. / 12.) / (1. / 12.) > tolvar) ||
-        (fabs(var_se - 1. / 12.) / (1. / 12.) > tolvar) ||
-        (fabs(var_bh - 1. / 12.) / (1. / 12.) > tolvar)) {
+
+    /* Set the allowed standard deviation */
+    const double std_check = 5.;
+
+    /* The mean is expected to deviate a maximum of std_check * std / sqrt(N) */
+    const double tolmean = std_check/sqrtf(12.f * count);
+
+    /* the variance is expected to deviate a maximum of std_check * variance 
+     * * sqrt(2/(n-1)) */
+    const double tolvar = std_check * sqrtf(2.f / (12.f*((double)count-1.f)));
+
+    /* The correlation coefficient is expected to deviate sqrt(1-R^2) 
+     * / sqrt(n-2), in our case <R> = 0, so we get 1/sqrt(n-2) */
+    const double tolcorr = std_check/sqrtf((double)count -2.);
+
+    if ((fabs(mean - 0.5) > tolmean) ||
+        (fabs(var - 1. / 12.) > tolvar) ||
+        (fabs(correlation) > tolcorr) || (fabs(correlationID) > tolcorr) ||
+        (fabs(meanID - 0.5) > tolmean) ||
+        (fabs(varID - 1. / 12.) > tolvar) ||
+        (fabs(corr_star_sf) > tolcorr) || (fabs(corr_star_se) > tolcorr) ||
+        (fabs(corr_star_bh) > tolcorr) || (fabs(corr_sf_se) > tolcorr) ||
+        (fabs(corr_sf_bh) > tolcorr) || (fabs(corr_se_bh) > tolcorr) ||
+        (fabs(mean_sf - 0.5) > tolmean) ||
+        (fabs(mean_se - 0.5) > tolmean) ||
+        (fabs(mean_bh - 0.5) > tolmean) ||
+        (fabs(var_sf - 1. / 12.) > tolvar) ||
+        (fabs(var_se - 1. / 12.) > tolvar) ||
+        (fabs(var_bh - 1. / 12.) > tolvar)) {
       message("Test failed!");
       message("Global result:");
       message("Result:    count=%d mean=%f var=%f, correlation=%f", count, mean,
               var, correlation);
       message("Expected:  count=%d mean=%f var=%f, correlation=%f", count, 0.5f,
               1. / 12., 0.);
+      message("Max difference:           mean=%f var=%f, correlation=%f", 
+              tolmean, tolvar, tolcorr);
+      message("Difference:               mean=%f var=%f, correlation=%f", 
+              fabs(mean-0.5f), fabs(var-1./12.),fabs(correlation));
       message("ID part");
       message(
           "Result:    count=%d mean=%f var=%f"
@@ -288,23 +303,43 @@ int main(int argc, char* argv[]) {
           "Expected:  count=%d mean=%f var=%f"
           " correlation=%f",
           count, .5f, 1. / 12., 0.);
+      message("Max difference:           mean=%f var=%f, correlation=%f",
+              tolmean, tolvar, tolcorr);
+      message("Difference:               mean=%f var=%f, correlation=%f",
+              fabs(meanID-0.5f), fabs(varID-1./12.),fabs(correlation));
       message("Different physical processes:");
       message(
           "Means:    stars=%f stellar feedback=%f stellar "
-          " enrichement=%f black holes=%f",
+          " enrichment=%f black holes=%f",
           mean, mean_sf, mean_se, mean_bh);
       message(
           "Expected: stars=%f stellar feedback=%f stellar "
-          " enrichement=%f black holes=%f",
+          " enrichment=%f black holes=%f",
           .5f, .5f, .5f, .5f);
+      message(
+          "Max diff: stars=%f stellar feedback=%f stellar "
+          " enrichment=%f black holes=%f", tolmean, tolmean, tolmean, tolmean);
+      message(
+          "Diff:     stars=%f stellar feedback=%f stellar "
+          " enrichment=%f black holes=%f", fabs(mean-.5f), fabs(mean_sf-.5f),
+          fabs(mean_se-.5f), fabs(mean_bh-.5f));
+      message(" ");
       message(
           "Var:      stars=%f stellar feedback=%f stellar "
-          " enrichement=%f black holes=%f",
+          " enrichment=%f black holes=%f",
           var, var_sf, var_se, var_bh);
       message(
           "Expected: stars=%f stellar feedback=%f stellar "
-          " enrichement=%f black holes=%f",
+          " enrichment=%f black holes=%f",
           1. / 12., 1. / 12., 1 / 12., 1. / 12.);
+      message(
+          "Max diff: stars=%f stellar feedback=%f stellar "
+          " enrichment=%f black holes=%f", tolvar, tolvar, tolvar, tolvar);
+      message(
+          "Diff:     stars=%f stellar feedback=%f stellar "
+          " enrichment=%f black holes=%f", fabs(var-1./12.),
+          fabs(var_sf-1./12.), fabs(var_se-1./12.), fabs(var_bh-1./12.));
+      message(" ");
       message(
           "Correlation: stars-sf=%f stars-se=%f stars-bh=%f "
           "sf-se=%f sf-bh=%f se-bh=%f",
@@ -314,6 +349,15 @@ int main(int argc, char* argv[]) {
           "Expected:    stars-sf=%f stars-se=%f stars-bh=%f "
           "sf-se=%f sf-bh=%f se-bh=%f",
           0., 0., 0., 0., 0., 0.);
+      message(
+          "Max diff:    stars-sf=%f stars-se=%f stars-bh=%f "
+          "sf-se=%f sf-bh=%f se-bh=%f", tolcorr, tolcorr, tolcorr, tolcorr,
+          tolcorr, tolcorr);
+      message(
+          "Diff:        stars-sf=%f stars-se=%f stars-bh=%f "
+          "sf-se=%f sf-bh=%f se-bh=%f", fabs(corr_star_sf), fabs(corr_star_se),
+          fabs(corr_star_bh), fabs(corr_sf_se), fabs(corr_sf_bh), 
+          fabs(corr_se_bh));
       return 1;
     }
   }