My code has some invalid arguments

My code has some invalid arguments. I am trying to change the color of a game object’s shader (Emission color) to Red and Green with the probability of a 70% of getting the color of green, and a 30% chance of getting the color of red after the thirty seconds, but I cant get it right. Before the thirty seconds, script should be inactive. What am I doing wrong?

public GameObject Rings;
public int Time;
public Color ColorRed;
public Color ColorGreen;

// Use this for initialization
void Start () {
	ColorRed = Color.red;
	ColorGreen = Color.green;

	if (System.Threading.Thread.Sleep (Time>30000)) 
	{
		Rings = GameObject.FindGameObjectWithTag ("Rings");
		Renderer rend = GetComponent<Renderer> ();
		rend.material.shader = Shader.Find ("_EmmissionColor");
		rend.material.SetColor (Color.red, Color.green);

			
	}

}

This should work :

public GameObject Rings;
public int        Time       = 30;
public Color      ColorRed   = Color.red;
public Color      ColorGreen = Color.green;

private IEnumerator Start()
{
    Rings = GameObject.FindGameObjectWithTag("Rings");
    Renderer rend = GetComponent<Renderer>();
    yield return new WaitForSeconds(Time);                 //Creates a yield instruction to wait for a given number of seconds using scaled time.
    int rnd = Random.Range(0, 101);                        //Generate a random number between 1,100
    
    if (rnd < 70)
    {
        Debug.Log("Green");
        rend.material.SetColor("_EmissionColor", ColorGreen);
    }
    else
    {
        Debug.Log("Red");
        rend.material.SetColor("_EmissionColor", ColorRed);
    }
}