When using runtime-generated data, skewed keys may be a problem. Selects may show an unrealistically high cache hit rate, and inserts, updates, and deletes may appear to have concurrency problems. To avoid these problems, use the entire range of key values in your tests, unless you are trying to recreate a particular business situation.
Using a separate file for each transaction can prevent skewing; however, it requires additional code to synchronize users. Using a separate file for each user is more work to create but also prevents skewing.
Using a memory generator works well to prevent skewing and makes the test easy to administer. However, the benchmark is then not 100% repeatable.