rhymer.day gives you a random word and challenges you to find as many words that rhyme with it as possible. It uses the cmudict dictionary, a pronunciation dictionary, as its source of truth.
How it works, in a nutshell: (i) take random word from cmudict; (ii) you writes words that you think rhyme with the word; (iii) the last two phonemes of each word you submit are compared to the phonemes of the random word; (iv) if they match, your word is accepted.
It's a bit rough around the edges, but I'd love your feedback!
The code is open source, too: https://github.com/capjamesg/rhymer.day