Computer simulations play an important role in studies of non-random mating populations. Because of implementation difficulties, only very limited types of non-random mating schemes are provided in the currently available simulation programs. Starting with version 0.8.5, simuPOP provides a few mating schemes that can be used to simulate arbitrary non-random mating models. This article describes the concepts and methods behind these mating schemes and demonstrates their uses in a few examples, including partial self-mating, positive assortative mating, non-random outbreeding, and simulation of overlapping generations in age-structured populations.