Help with repositioning object to a random position in the FOV

I am a little stuck with trying to put an object back in the field of view after it has left the FOV. Currently, I can use the mouse to drag the camera around my game map from a birds eye view and what I am trying to achieve is to have a certain object reappear on the map when the player has moved the camera away from that, object. So basically re-position the object back onto the screen in a random position.

So far I am using OnBecameInvisible to detect when the object is no longer on the screen. How can I then move the object back onto the screen in a random position after the player has scrolled an x amount of distance away from it when its no longer on the screen?

Scripting API - Camera

Camera has some useful function for positioning in the FOV: WorldToScreenPoint, ScreenToWorldPoint, etc.

void SpawnOnScreen()
{
    transform.localPosition = Camera.main.ViewportToWorldPoint(
        new Vector3(Random.Range(0.1f, 0.9f), Random.Range(0.1f, 0.9f), 10f));
}

You can call this function with the OnBecomeInvisible event like you were doing:

void OnBecameInvisible() {
    SpawnOnScreen();
}

or check each frame where the object is.

void Update () {
    Vector3 viewportPoint = Camera.main.WorldToViewportPoint(transform.localPosition);
    if (viewportPoint.x <= 0.0f || viewportPoint.x >= 1.0f ||
        viewportPoint.y <= 0.0f || viewportPoint.y >= 1.0f)
    {
        SpawnOnScreen();
    }
}