Tomé la respuesta de @Joel Coehoorn e hice los cambios que aconsejó: eliminar la variable del método y poner todo en clase. Además, ahora el tiempo también es aleatorio. Aquí está el resultado.
class RandomDateTime
{
DateTime start;
Random gen;
int range;
public RandomDateTime()
{
start = new DateTime(1995, 1, 1);
gen = new Random();
range = (DateTime.Today - start).Days;
}
public DateTime Next()
{
return start.AddDays(gen.Next(range)).AddHours(gen.Next(0,24)).AddMinutes(gen.Next(0,60)).AddSeconds(gen.Next(0,60));
}
}
Y un ejemplo de cómo usar para escribir 100 DateTimes al azar en la consola:
RandomDateTime date = new RandomDateTime();
for (int i = 0; i < 100; i++)
{
Console.WriteLine(date.Next());
}