# Difference between properties of good hash function: uniformity and randomness

I did go through Korth's book of DBMS and I got these definitions:

Uniformity:

Each bucket is assigned the same number of search-key values from the set of all possible values.

Randomness:

Each bucket will have the same number of records assigned to it irrespective of the actual distribution of search-key values in the file.

These definitions seem similar to me. Can anyone please differentiate, I did search on net but can't understand.

For example, suppose you make a very simple hash function that takes the first byte of a string, resulting in 256 buckets. It is uniform, because the number of possible strings starting with a particular byte doesn't depend on. But it is not random for most data sets: at least 12.5% of the values consist of nonprintable characters (control characters) that most data sets don't contain, some characters like )]} rarely appear at the beginning of a string, an English dictionary contains more words beginning with a than with z, etc.