why dose my corutine dosent start ?

As far as I remember its done like this in start you have to start corutine
void start()
{
StartCorutine(MyCorutine);
}

I get an freaking error that it has some invalid arguments .

public GameObject block1;
public GameObject block2;
public GameObject block3;
public GameObject block4;
public GameObject block5;
public GameObject block6;
public bool spawned; 
public float chooser;
public float seconds;

void Start () {
	StartCoroutine (spawnernumerator);
}

void Update () {
	spawnernumerator ();
}

IEnumerator spawnernumerator()
{
	while (true) {
		chooser = Random.Range (1, 6);
		seconds = Random.Range (1, 5);

		if (chooser == 1) {
			Instantiate (block1, transform.position, Quaternion.identity);
		}
		if (chooser == 2) {
			Instantiate (block2, transform.position, Quaternion.identity);
		}
		if (chooser == 3) {
			Instantiate (block3, transform.position, Quaternion.identity);
		}
		if (chooser == 4) {
			Instantiate (block4, transform.position, Quaternion.identity);
		}
		if (chooser == 5) {
			Instantiate (block5, transform.position, Quaternion.identity);
		}
		if (chooser == 6) {
			Instantiate (block6, transform.position, Quaternion.identity);
		}

		yield return new WaitForSeconds (seconds);

	}

}

}

I’m not sure what you’re trying to do here, but get rid of it:

void Update () {
 spawnernumerator ();
}

You’re already launching one copy of the never-ending spawnernumerator in Start() - you certainly don’t want to launch another copy in every frame (and, even so, this is not the correct syntax to do so).