Limiting random actions (c#) (newbie)

I really don’t know how else to describe this problem. I’m making a game in which the enemies approach the player and jump randomly. I recently asked a question about getting them to do this, which was amazingly helpful, and now I have a whole new problem: They’re doing it too much. Now they are jumping multiple times per instance, and I can’t figure out how to get it to limit it to one jump at a time. I’m sure there needs to be some sort of wait time or if statement, but I’m still wrapping my head around general programming, so I choose to defer to experts.

Here is my code:

using UnityEngine;
using System.Collections;

public class EnemyMovement : MonoBehaviour {

	public float speed;
	public float jumpHeight;
	public float jumpWaitMin, jumpWaitMax;
	public float jumpRate;
	public Rigidbody2D rigidbody2d;

	void Start ()
	{

		StartCoroutine (JumpLogic ());
		rigidbody2d.velocity = transform.right * speed;
	}
	IEnumerator JumpLogic()
	{
				float minWaitTime = jumpWaitMin;
				float maxWaitTime = jumpWaitMax;

				while (true) {
						yield return new WaitForSeconds (Random.Range (minWaitTime, maxWaitTime));
						Jump ();
				}
		}
	void Jump()
		{
		rigidbody2d.AddForce (new Vector2 (0, 1) * jumpHeight * 100);
	}
}

Thanks in advance for your help!

I figured it out. I defined a private bool to indicate that the jump function was active, and had the jump function define it as true. In the coroutine, I set it up to return false if jumping was true.

If that doesn’t make sense, here’s the code I wound up with:
public float jumpHeight;
public float jumpWaitMin, jumpWaitMax;
public float speedMin, speedMax;
public Rigidbody2D rigidbody2d;

	private bool jumping;

	void Start ()
	{

		StartCoroutine (JumpLogic ());
		rigidbody2d.velocity = transform.right * -Random.Range (speedMin, speedMax);
	}
	IEnumerator JumpLogic()
	{
				float minWaitTime = jumpWaitMin;
				float maxWaitTime = jumpWaitMax;

				while (true) {
						yield return new WaitForSeconds (Random.Range (minWaitTime, maxWaitTime));
				if (jumping) return false;
						Jump ();
				}
		}
	void Jump()
		{
		rigidbody2d.AddForce (new Vector2 (0, 1) * jumpHeight * 100);
		jumping = true;
	}
}

If anyone knows of a better way, please let me know!