A scientific workflow can be viewed as formal model of the flow of data between processing components. It often involves a combination of data integration, computation, analysis, and visualization steps. An emerging use case involves determining some input parameters that minimize (or maximize) the output of a computation. Kepler is a good framework for specifying such optimizations because arbitrary computations can be composed into a pipeline, which is then repeated until an optimal set of inputs is found. Genetic Algorithms are generic optimization algorithms based on the principles of genetics and natural selection, and are well suited for models with discontinuous objective functions. This paper discusses an implementation of a Genetic Algorithm in Kepler, building on the Nimrod/OK framework. The resulting tool is generic and flexible enough to support a variety of experimental domains. The paper reports a number of experiments that demonstrate the performance with a set of benchmarking functions.