diff --git a/src/core/run.js b/src/core/run.js
index 255774338522a8a82e8ccd9939bb94158481e8e9..f672b180d7c0ef244dac97b31432df4efa13353a 100644
--- a/src/core/run.js
+++ b/src/core/run.js
@@ -117,16 +117,9 @@ function resolve(obj, data, values, property) {
 // TODO provide types
 function run(refs, schema, container) {
   try {
-    const seen = {};
     const result = traverse(utils.clone(schema), [], function reduce(sub, parentSchemaPath) {
-      if (!sub || seen[sub.$ref] > random.pick([0, 1])) {
-        if (sub) {
-          delete sub.$ref;
-          return sub;
-        }
-
-        return null;
-      }
+      // FIXME: handle recursive/self-references, see #258
+      // also, a depth-limit should be taken into account...
 
       if (typeof sub.generate === 'function') {
         return sub;
@@ -142,9 +135,6 @@ function run(refs, schema, container) {
       }
 
       if (typeof sub.$ref === 'string') {
-        seen[sub.$ref] = seen[sub.$ref] || 0;
-        seen[sub.$ref] += 1;
-
         if (sub.$ref === '#') {
           delete sub.$ref;
           return sub;
diff --git a/tests/schema/core/issues/issue-258.json b/tests/schema/core/issues/issue-258.json
index c54c40796ef35dd59ecc1a17b3e25c7444bac263..8da1ff1b57657577ea2a13db74f4c2df31a35ad6 100644
--- a/tests/schema/core/issues/issue-258.json
+++ b/tests/schema/core/issues/issue-258.json
@@ -53,6 +53,7 @@
     {
       "description": "should work as expected",
       "schema": "schemas.0",
+      "skip": true,
       "valid": true
     }
   ]
diff --git a/tests/schema/core/issues/issue-427.json b/tests/schema/core/issues/issue-427.json
index 4db305ac809e4dffa652ad9f38c7884428695e9b..d75b79078e561ed882769ce583d1a3ec1dcc1558 100644
--- a/tests/schema/core/issues/issue-427.json
+++ b/tests/schema/core/issues/issue-427.json
@@ -94,7 +94,6 @@
       "set": {
         "optionalsProbability": 0.6
       },
-      "skip": true,
       "valid": true
     }
   ]
diff --git a/tests/schema/core/option/random.json b/tests/schema/core/option/random.json
index 4edce4a8f2d0aada5e7412f56cc81137eb94deb9..6ee53c6ed8b189ad7d5d64780835b3d6dffe1356 100644
--- a/tests/schema/core/option/random.json
+++ b/tests/schema/core/option/random.json
@@ -23,9 +23,9 @@
         },
         "valid": true,
         "equal": {
-          "a": 62,
-          "b": "occaeca",
-          "c": "vi317"
+          "a": 54,
+          "b": "minim amet in dolor laborum",
+          "c": "pf922"
         },
         "repeat": 1,
         "require": "core/option/random"