Here’s a randomly generated keyphrase cipher. My hill-climber and word search programs were enough to solve it without a crib. I’ll include a caesar-shifted crib. The punctuation was left out of the ciphertext.
SSSEHORONH AH TEOSNLR SSSEHORONH LRN RSESS FR ON ORS LENLOOOEN ON IROLR IS RES LE NEO TEEHSO ORRO O OSH ET HEF.
caesar-shifted crib: BMNHM.
Note: The key was randomly selected from a list of about 1000 keyphrases. I generated the list by looping through lines of poetry. From each line of poetry I removed the beginning words until there were 26 letters left if possible, also I tried removing words from the end until 26 letters were left, and also I tried removing words at random until 26 letters were left. This particular key makes sense and can be found with an internet search.
Making a keyphrase by removing words at random is probably not a very efficient method of proceeding. I think a problem like this is called a “knapsack” problem in the literature. Knapsack problems are like traveling salesman problems — there is no general algorithm for solving them, but some reasonably good algorithms probably exist.