My algorithm went like this:
1. Guess the most common letter from the list of n-letter words in the dictionary (where n is the length of the hidden word). If more than one letter has the same frequency, guess the most common in dictionary frequency.
2. Filter out non-matching words as letters are guessed.
3. When the list of matching words is exhausted, start doing pattern matches against the entire dictionary, beginning with a substring of n-1, then n-2, etc. until some matches are found, then guess the most common letter.
4. If no matches are found, guess the next most common letter by dictionary frequency.
One side of the bookmark is for level-two words they overhear--from friends, teachers, family, etc. The other side of the bookmark is for level-two words they come across while reading. I expect them to write down way more words than will ever end up in the "word collection" section of their notebooks. To me, it's an important critical thinking skill to--when asked to choose just one word from their bookmark and celebrate it in their writer's notebook--to choose a word they really want to "own" as a "pocket word." As I have already said, several times weekly I will give them the last ten or fifteen minutes of class to do just that: a) choose a word they recently heard or read and really liked the sound of and b) prepare to add it to their logophile collection. Being able to do this well will take a lot of practice on my kids' part, and the purpose of this lesson is to begin that type of practice and to build a place in their notebooks that is fun to come back and add to: their vocabulary collection section.