I use eqexam package to create an exam with single-choice, multiple-choice and fill-in questions. I chose it for visual appeal, easy localization / translation and ability to randomize answers.
What it is lacking is support for matching tests (i.e. connecting a set of answers on the left with set of answers on the right), something like 'matching' environment from examdesign class.
How to create support for matching tests for
eqexam, or how to port 'matching' environment from