How to randomly change a color on an object in C#

Hi Gurus

Can you please assist me, i want to change a color on an object during runtime. I have the code and its working but i have put it in the Update function which changes the color of the object quickly and i was hoping for it to take at least a second or so before changing to anther color. He is the code below:

// Update is called once per frame

void Update () {

    // pick a random color
    Color newColor = new Color( Random.value, Random.value, Random.value, 1.0f );

    // apply it on current object's material
    renderer.material.color = newColor; 	

}

{
public float timer = 0.0f;

	void Start () 
	{
	
	}
	
	
	void Update () 
	{
		timer += Time.deltaTime;
		if (timer >= 2.0f)//change the float value here to change how long it takes to switch.
		{
			// pick a random color
			Color newColor = new Color( Random.value, Random.value, Random.value, 1.0f );
			// apply it on current object's material
			renderer.material.color = newColor;
			timer = 0;
		}
 
		
	}
}

Have a look at InvokeRepeating().