Primer3 picks primers for PCR reactions, considering as criteria:

All of these criteria are user-specifiable as constraints, and some are specifiable as terms in an objective function that characterizes an optimal primer pair.

This product includes software developed by the Whitehead Institute for Biomedical Research.

Copyright Notice and Disclaimer:
Copyright (c) 1996,1997,1998,1999,2000,2001,2004 Whitehead Institute for Biomedical Research. All rights reserved.

Use of this software should be cited in publications as
Rozen, S., Skaletsky, H. "Primer3 on the WWW for general users and for biologist programmers." In S. Krawetz and S. Misener, eds. Bioinformatics Methods and Protocols in the series Methods in Molecular Biology. Humana Press, Totowa, NJ, 2000, pages 365-386.

Code available at http://fokker.wi.mit.edu/primer3/

Primer3's design is heavily based on an earlier implementation of a similar program: Primer 0.5 (Steve Lincoln, Mark Daly, and Eric S. Lander). Lincoln Stein championed the idea of making the Primer3 engine a software component.