N-version Program (NVP) is a programming approach to fault tolerant software systems. It employs functionally equivalent, yet independently developed software components. We formulate the optimal design problem of NVP system to a biobjective optimization model, i.e., maximizing the system reliability and minimizing the system total cost. We use a Multi-Objective Genetic Algorithm (MOGA) to solve multi-objective optimization problems, however, it requires an appropriate mechanism to search Pareto solutions evenly along the Pareto frontier as many as possible. In our MOGA, we employ the random-key representation and the elitism and Pareto-insertion based on distance between Pareto solutions in the selection process. The proposed MOGA will obtain many Pareto solutions along the Pareto frontier evenly