Sleep for a random interval of time in Update()

How do you sleep an update() for a random interval of time?

You could store the time:

float waitTime = 0f;

void Start()
{
    RandomizeWaitTime();
}

void Update()
{
    if (Time.time < waitTime && waitTime != 0f)
    {
        //do stuff
        waitTime = 0f;
    }
}

void RandomizeWaitTime()
{
    const float minimumWaitTime = 1f;
    const float maximumWaitTime = 2f;
    waitTime = Time.time + Random.Range(minimumWaitTime, maximumWaitTime);
}

But this is what coroutines are for, this same code could be rewritten as:

void Start()
{
    StartCoroutine(DoStuff());
}

IEnumerator DoStuff()
{
    const float minimumWaitTime = 1f;
    const float maximumWaitTime = 2f;
    yield return new WaitForSeconds(Random.Range(minimumWaitTime, maximumWaitTime));
    //do stuff
}

http://unity3d.com/support/documentation/ScriptReference/index.Coroutines_26_Yield.html

You can't, Update runs once every frame without exception.