title: Boogle generator algorithm
body: <p>Recently I came across an interesting <a href="https://stackoverflow.com/questions/746082/how-to-find-list-of-possible-words-from-a-letter-matrix-boggle-solver">Boogle solving algorithm</a> problem. While I am familiar with the methods of solving it, I would now like to make a good letter generator for a Boogle board and am looking for an efficient algorithm to do so.<br />
  First two steps are straight-forward:</p>
  <pre><code>1) Boogle board is 5x5, so I will have an array of 25 chars. Randomly generate an array of 25 chars.
  2) Shuffle the array obtained in the step 1
  </code></pre>
  <p>What next? I need to optimize the obtained array to be able to get as many meaningful words as possible. One thing that comes to mind is discarding all combinations of three same letters in a row.
  Example: <code>[b b b a c c]</code>
  is not quite good. Or should I just limit every letter to appear max twice?</p>
  <p>Also, when generating numbers, the letters would have to be weighted. Example, we don't a lot of X and Ys, but vowels can appear many times.</p>
  <p>Anything else?</p>
  <p>Any guidelines are welcome.</p>