You can try GeneticSharp.
It has all classic GA operations, like selection, crossover, mutation, reinsertion and termination.
It's very extensible, you can define your own chromosomes, fitness function, population generation strategy and all cited operations above too.
It can be used in many kind of apps, like C# libraries and Unity 3D games, there is samples running it in a GTK# app and Unity 3D checkers game.
It also works in Win and OSX.
Here is a basic sample how to use the library:
var selection = new EliteSelection();
var crossover = new OrderedCrossover();
var mutation = new ReverseSequenceMutation();
var fitness = new YourFitnessFunction();
var chromosome = new YourChromosome();
var population = new Population (50, 70, chromosome);
var ga = new GeneticAlgorithm(population, fitness, selection, crossover, mutation);
ga.Start();