Другие ответы обязательно сработают, если вам нужно случайное распределение, которое благоприятствует 90% зеленого.
Однако, если вам нужен точный дистрибутив, будет работать что-то подобное:
void Main()
{
Light[] lights = new Light[300];
int i=0;
Random rand = new Random();
while(i<270)
{
int tryIndex = rand.Next(300);
if(lights[tryIndex] == Light.NotSet)
{
lights[tryIndex] = Light.Green;
i++;
}
}
for(i=0;i<300;i++)
{
if(lights[i] == Light.NotSet)
{
lights[i] = Light.Red;
}
}
//iterate over lights and do what you will
}
enum Light
{
NotSet,
Green,
Red
}