First off, move the Random instance outside any method, and make it private:
class GenData
{
private Random rand = new Random();
public void GenStats()
{
That way, it isn't recreated each time you call the method, which can mean repeated values. That's probably what's causing the problem in this case, because the Random constructor uses the system time to "start the sequence" and if you call the GenStats routine quickly in succession, the time doesn't change between constructor calls because your processor is too fast!
Secondly, if you are going to build new GenData instances so quickly, that isn;t going to fix it completely either - so make the Random instance static:
class GenData
{
private static Random rand = new Random();
public void GenStats()
{
Normally, I wouldn't suggest that as it isn't necessarily thread safe, but for this exercise it's probably fine.