Index: branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/ArtificialAnt/GEArtificialAntEvaluator.cs
===================================================================
--- branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/ArtificialAnt/GEArtificialAntEvaluator.cs	(revision 10277)
+++ branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/ArtificialAnt/GEArtificialAntEvaluator.cs	(revision 10280)
@@ -63,4 +63,7 @@
       get { return (ILookupParameter<IGenotypeToPhenotypeMapper>)Parameters["GenotypeToPhenotypeMapper"]; }
     }
+    public ILookupParameter<IRandom> RandomParameter {
+      get { return (ILookupParameter<IRandom>)Parameters["Random"]; }
+    }
     #endregion
 
@@ -78,12 +81,14 @@
       Parameters.Add(new ValueLookupParameter<ISymbolicExpressionGrammar>("SymbolicExpressionTreeGrammar", "The tree grammar that defines the correct syntax of symbolic expression trees that should be created."));
       Parameters.Add(new LookupParameter<IGenotypeToPhenotypeMapper>("GenotypeToPhenotypeMapper", "Maps the genotype (an integer vector) to the phenotype (a symbolic expression tree)."));
+      Parameters.Add(new LookupParameter<IRandom>("Random", "Random number generator for the genotype creation and the genotype-to-phenotype mapping."));
     }
 
     public sealed override IOperation Apply() {
-      SymbolicExpressionTree expression = GenotypeToPhenotypeMapperParameter.ActualValue.Map(
+      SymbolicExpressionTree tree = GenotypeToPhenotypeMapperParameter.ActualValue.Map(
+        RandomParameter.ActualValue,
         SymbolicExpressionTreeGrammarParameter.ActualValue,
         IntegerVectorParameter.ActualValue
       );
-      SymbolicExpressionTreeParameter.ActualValue = expression;
+      SymbolicExpressionTreeParameter.ActualValue = tree;
       BoolMatrix world = WorldParameter.ActualValue;
       IntValue maxTimeSteps = MaxTimeStepsParameter.ActualValue;
@@ -92,5 +97,5 @@
       interpreter.MaxTimeSteps = maxTimeSteps.Value;
       interpreter.World = world;
-      interpreter.Expression = expression;
+      interpreter.Expression = tree;
       interpreter.Run();
 
Index: branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Mappers/BreathFirstMapper.cs
===================================================================
--- branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Mappers/BreathFirstMapper.cs	(revision 10277)
+++ branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Mappers/BreathFirstMapper.cs	(revision 10280)
@@ -27,5 +27,4 @@
 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Random;
 
 namespace HeuristicLab.Problems.GrammaticalEvolution {
@@ -51,8 +50,10 @@
     /// Breath-first approach.
     /// </summary>
+    /// <param name="random">random number generator</param>
     /// <param name="grammar">grammar definition</param>
     /// <param name="genotype">integer vector, which should be mapped to a tree</param>
     /// <returns>phenotype (a symbolic expression tree)</returns>
-    public override SymbolicExpressionTree Map(ISymbolicExpressionGrammar grammar,
+    public override SymbolicExpressionTree Map(IRandom random,
+                                               ISymbolicExpressionGrammar grammar,
                                                IntegerVector genotype) {
 
@@ -64,5 +65,5 @@
 
       MapBreathFirstIteratively(startNode, genotype, grammar,
-                                genotype.Length, new MersenneTwister());
+                                genotype.Length, random);
 
       return tree;
Index: branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Mappers/DepthFirstMapper.cs
===================================================================
--- branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Mappers/DepthFirstMapper.cs	(revision 10277)
+++ branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Mappers/DepthFirstMapper.cs	(revision 10280)
@@ -27,5 +27,4 @@
 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
-using HeuristicLab.Random;
 
 namespace HeuristicLab.Problems.GrammaticalEvolution {
@@ -51,20 +50,22 @@
     /// Depth-first approach.
     /// </summary>
+    /// <param name="random">random number generator</param>
     /// <param name="grammar">grammar definition</param>
     /// <param name="genotype">integer vector, which should be mapped to a tree</param>
     /// <returns>phenotype (a symbolic expression tree)</returns>
-    public override SymbolicExpressionTree Map(ISymbolicExpressionGrammar grammar,
+    public override SymbolicExpressionTree Map(IRandom random,
+                                               ISymbolicExpressionGrammar grammar,
                                                IntegerVector genotype) {
 
       SymbolicExpressionTree tree = new SymbolicExpressionTree();
       var rootNode = (SymbolicExpressionTreeTopLevelNode)grammar.ProgramRootSymbol.CreateTreeNode();
-      if (rootNode.HasLocalParameters) rootNode.ResetLocalParameters(new MersenneTwister());
+      if (rootNode.HasLocalParameters) rootNode.ResetLocalParameters(random);
       var startNode = (SymbolicExpressionTreeTopLevelNode)grammar.StartSymbol.CreateTreeNode();
-      if (startNode.HasLocalParameters) startNode.ResetLocalParameters(new MersenneTwister());
+      if (startNode.HasLocalParameters) startNode.ResetLocalParameters(random);
       rootNode.AddSubtree(startNode);
       tree.Root = rootNode;
 
       MapDepthFirstIteratively(startNode, genotype, grammar,
-                               genotype.Length, new MersenneTwister());
+                               genotype.Length, random);
       return tree;
     }
Index: branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Mappers/GenotypeToPhenotypeMapper.cs
===================================================================
--- branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Mappers/GenotypeToPhenotypeMapper.cs	(revision 10277)
+++ branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Mappers/GenotypeToPhenotypeMapper.cs	(revision 10280)
@@ -40,5 +40,6 @@
     protected GenotypeToPhenotypeMapper() : base() { }
 
-    public abstract SymbolicExpressionTree Map(ISymbolicExpressionGrammar grammar,
+    public abstract SymbolicExpressionTree Map(IRandom random,
+                                               ISymbolicExpressionGrammar grammar,
                                                IntegerVector genotype);
 
Index: branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Mappers/IGenotypeToPhenotypeMapper.cs
===================================================================
--- branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Mappers/IGenotypeToPhenotypeMapper.cs	(revision 10277)
+++ branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Mappers/IGenotypeToPhenotypeMapper.cs	(revision 10280)
@@ -20,4 +20,5 @@
 #endregion
 
+using HeuristicLab.Core;
 using HeuristicLab.Encodings.IntegerVectorEncoding;
 using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
@@ -28,5 +29,6 @@
   /// </summary>
   public interface IGenotypeToPhenotypeMapper : IIntegerVectorOperator {
-    SymbolicExpressionTree Map(ISymbolicExpressionGrammar grammar,
+    SymbolicExpressionTree Map(IRandom random,
+                               ISymbolicExpressionGrammar grammar,
                                IntegerVector genotype);
   }
Index: branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Mappers/PIGEMapper.cs
===================================================================
--- branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Mappers/PIGEMapper.cs	(revision 10277)
+++ branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Mappers/PIGEMapper.cs	(revision 10280)
@@ -48,8 +48,10 @@
     /// PIGE approach.
     /// </summary>
+    /// <param name="random">random number generator</param>
     /// <param name="grammar">grammar definition</param>
     /// <param name="genotype">integer vector, which should be mapped to a tree</param>
     /// <returns>phenotype (a symbolic expression tree)</returns>
-    public override SymbolicExpressionTree Map(ISymbolicExpressionGrammar grammar,
+    public override SymbolicExpressionTree Map(IRandom random,
+                                               ISymbolicExpressionGrammar grammar,
                                                IntegerVector genotype) {
 
Index: branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Mappers/RandomMapper.cs
===================================================================
--- branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Mappers/RandomMapper.cs	(revision 10277)
+++ branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Mappers/RandomMapper.cs	(revision 10280)
@@ -48,8 +48,10 @@
     /// Random approach.
     /// </summary>
+    /// <param name="random">random number generator</param>
     /// <param name="grammar">grammar definition</param>
     /// <param name="genotype">integer vector, which should be mapped to a tree</param>
     /// <returns>phenotype (a symbolic expression tree)</returns>
-    public override SymbolicExpressionTree Map(ISymbolicExpressionGrammar grammar,
+    public override SymbolicExpressionTree Map(IRandom random,
+                                               ISymbolicExpressionGrammar grammar,
                                                IntegerVector genotype) {
 
Index: branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Symbolic/GESymbolicRegressionSingleObjectiveEvaluator.cs
===================================================================
--- branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Symbolic/GESymbolicRegressionSingleObjectiveEvaluator.cs	(revision 10277)
+++ branches/GrammaticalEvolution/HeuristicLab.Problems.GrammaticalEvolution/Symbolic/GESymbolicRegressionSingleObjectiveEvaluator.cs	(revision 10280)
@@ -33,6 +33,11 @@
 
     public const string EvaluatorParameterName = "Evaluator";
+    public const string RandomParameterName = "Random";
+
     public IValueParameter<ISymbolicRegressionSingleObjectiveEvaluator> EvaluatorParameter {
       get { return (IValueParameter<ISymbolicRegressionSingleObjectiveEvaluator>)Parameters[EvaluatorParameterName]; }
+    }
+    public ILookupParameter<IRandom> RandomParameter {
+      get { return (ILookupParameter<IRandom>)Parameters[RandomParameterName]; }
     }
 
@@ -40,4 +45,5 @@
       get { return EvaluatorParameter.Value; }
     }
+
 
     [StorableConstructor]
@@ -62,4 +68,5 @@
       // translate to phenotype
       var tree = GenotypeToPhenotypeMapperParameter.ActualValue.Map(
+        RandomParameter.ActualValue,
         SymbolicExpressionTreeGrammarParameter.ActualValue,
         genotype
