Question: How to distribute English alphabet letters among Boggle game dice? How to make rolling for example letter "A" more often than others? How to choose how many copies of each letter to make, and how many copies of them to put on one dice? Can you please answer to these questions?

Answer: 
Let's work with Scrabble tiles (without blanks) instead of Boggle dice, just to keep things as simple as possible. (At the end, you can make your Boggle dice by sticking the Scrabble tiles onto them.) Suppose we have $n$ tiles, with $n \ge 26$, and a table of letter frequencies (for instance, [this one](http://en.wikipedia.org/wiki/Letter_frequency)), which we convert to probabilities by dividing by 100.

The first thing to do is to pick each letter once (assuming that you want all letters to occur at least once). Then subtract $1/n$ from each letter frequency to account for this, and set $n = n - 26$. This might make some of the letter frequencies negative, so we discard those letters, and renormalise the remaining frequencies so that they add up to $1$ (that is, if $S$ is the sum of the remaining frequencies, we multiply each frequency by $1/S$.) 

Now just do the following (**Updated** to work correctly):

```
for (i = 1 to n) {
  Pick the letter L with the largest frequency
  Subtract 1/n from L's frequency
}

```

That's how I would do it, anyway.
Assuming you want it to approximately match the distribution of letters in English words, you can generate a histogram with something like this:

> 
> cat /usr/share/dict/words |perl -pe 's/[^a-z]//gs' |perl -e 'print join("\n", split //, <>) . "\n"' |sort |uniq -c
> 
> 
> 

Convert these values into probabilities by dividing by the total, multiply by the total number of dice, multiply by 6, and then round up to an integer so you have at least one instance of each letter. Fudge the numbers so that the total is divisible by 6. Then label each face with those letters in such a way that you minimize the number of duplicate letters on each die.

If we make the problem more specific, there is probably a better (but more complicated) way. If you actually want to maximize the expected number of words that appear on the Boggle board, I think you will have to use some sort of [simulated annealing](http://en.wikipedia.org/wiki/Simulated_annealing) approach to optimize it.