unityでゲームを作ろうとしているsimと申します。
いわゆる落ちものパズルを作りたく思い、用意した17種のブロックから一つをランダム生成するC#スクリプトを書こうとしているのですが、以下のコードを実行するとarray index is out of rangeが出てしまいます。配列の長さをLength+1にしても同様です。
どのように変更したら正常に動作するか、ご教授いただけないでしょうか。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BlockGenerator : MonoBehaviour {

    public GameObject[] Blocks;
    float delta=0;
    float span=1.0f;
    float speed=-0.03f;

    public void SetParameter(float speed,float span){
        this.speed = speed;
        this.span = span;
    }

    // Use this for initialization
    void Start () {


    }

    // Update is called once per frame
    void Update () {
        this.delta += Time.deltaTime;
        if (this.delta > this.span) {
            this.delta = 0;
            GameObject Block;
            Blocks = GameObject.FindGameObjectsWithTag ("Block");
            int dice = Random.Range (0, Blocks.Length);
            Block = Instantiate (Blocks [dice]) as GameObject;
            Block.transform.position = new Vector3 (0, 8, 0);
            Block.GetComponent<BlockController> ().dropSpeed = this.speed;
        }

    }
}