diff --git a/src/core/run.js b/src/core/run.js
index 5a8b8dec43589b028da583a8f2a7fec2a257308f..07979b36d5d22629973dc055d783dc0e46b6bbca 100644
--- a/src/core/run.js
+++ b/src/core/run.js
@@ -83,7 +83,7 @@ function resolve(obj, data, values, property) {
 // TODO provide types
 function run(refs, schema, container) {
   try {
-    const result = traverse(schema, [], function reduce(sub, maxReduceDepth, parentSchemaPath) {
+    const result = traverse(utils.merge({}, schema), [], function reduce(sub, maxReduceDepth, parentSchemaPath) {
       if (typeof maxReduceDepth === 'undefined') {
         maxReduceDepth = random.number(1, 3);
       }