Choose two typefaces, and know why
Pairing is not about contrast for its own sake. It is about giving each voice a job.
One voice, one job
A pairing works when each face has a role you can name out loud: this one argues, this one labels. Two faces doing the same job will always look like indecision.
Contrast the skeleton, not the mood
Pair a humanist serif with a grotesque and the difference in letter construction carries the contrast. Pair two geometric sans faces and you get a subtle mismatch that reads as a printing error.
Test in the worst case
Set both faces at their smallest intended size, in the least flattering context — a caption over an image, a table of numbers. Pairings usually fail there first.
Two faces doing the same job will always look like indecision.
Rebuild a page with a single typeface in three weights. If it does not lose anything, you did not need the second face.