Image for a quarter of a second

So I’m trying to make a scary game, and in this scary game at a random time after 2 minutes into the game, a 2d texture pops up for a quarter of a second. could i have the script in c#, (because converting it from js is a pain).

so this is what i was thinking →

public Texture2D ScaryFace;

void update() 
{ 
RandomPopup (); 
}
void RandomPopup () 
{ 
if (Random.Range(Time.time + 120,Time.time)) 
{ 
GUI.DrawTexture(newRect(0, 0, Screen.width,Screen.height), ScaryFace); 
} 
}

I’m not sure how this would work, and also how i would implement the quarter of a second that the “ScaryFace” needs to be up for.

Here a C# script that will make appear a pic every 120 seconds, it doesn’t work at random, but you can easily modify it:

using UnityEngine;
using System.Collections;

public class ScaryFace : MonoBehaviour {

	private bool isAppearing = false; //switch on/off the image (if true is showing, if false is hidden)
	
	public Texture2D ScaryFaceImage; //Texture of the image to show
	
	public float imageStayTime = 0.5f; //Time the image should stay on screen
	
	private float time; //Time passing in seconds
	public float timeLimit = 120f; //The time limit the picture have to appear
	
	void Update() 
	{ 
		
		StartCoroutine("FaceAppear"); 
	}

	
	IEnumerator FaceAppear () {
		time += Time.deltaTime * 1;
		
		while(time > timeLimit){
			isAppearing = true;
            yield return new WaitForSeconds(imageStayTime); 
			isAppearing = false;
			time = 0;
			
			}
		yield return null;
	}
	
	void OnGUI() 
	{ 
		if(isAppearing){
			GUI.DrawTexture ( new Rect (0,0, Screen.width, Screen.height), ScaryFaceImage);
		}
	}
}

Don’t know if is performance friendly, so far I get 0 impact on the frame rate; in this script you can also put a timelimit for the pic to appear, so you can make it appear also every 5 seconds. Every time the pic appear the timer is resetted to 0, using a simple coroutine.