Several objects one script C#

Hi, I got stuck. I don’t know what to do. I have a few objetcs(letters) and I want to when my script generate random letter and check if is correct move to other object with same script.

Code:

using UnityEngine;
using System.Collections;

public class generateRandomSprite : MonoBehaviour {

    //public
    public countDownC _countDown;
    public KeyCode[] SpriteKeyCode;

    //public Sprite Sprites;
    public Sprite[] sprites;

    //public gameObjects
    public GameObject Correct;
    public GameObject InCorrect;

    //private
    private int currentSprite = -1;
    private int currentKeyCode;
    private bool isKeyDownClicked = false;

    // Use this for initialization
    void Start () {
        _countDown = GameObject.FindGameObjectWithTag("MainCamera").gameObject.GetComponent<countDownC>();
        sprites = Resources.LoadAll<Sprite>("Sprites/spriteLetters");
       
        SpriteKeyCode[0] = KeyCode.A;
        SpriteKeyCode[1] = KeyCode.B;
        SpriteKeyCode[2] = KeyCode.C;
        SpriteKeyCode[3] = KeyCode.D;
        SpriteKeyCode[4] = KeyCode.E;
        SpriteKeyCode[5] = KeyCode.F;
        SpriteKeyCode[6] = KeyCode.G;
        SpriteKeyCode[7] = KeyCode.H;
        SpriteKeyCode[8] = KeyCode.I;
        SpriteKeyCode[9] = KeyCode.J;
        SpriteKeyCode[10] = KeyCode.K;
        SpriteKeyCode[11] = KeyCode.L;
        SpriteKeyCode[12] = KeyCode.M;
        SpriteKeyCode[13] = KeyCode.N;
        SpriteKeyCode[14] = KeyCode.O;
        SpriteKeyCode[15] = KeyCode.P;
        SpriteKeyCode[16] = KeyCode.Q;
        SpriteKeyCode[17] = KeyCode.R;
        SpriteKeyCode[18] = KeyCode.S;
        SpriteKeyCode[19] = KeyCode.T;
        SpriteKeyCode[20] = KeyCode.U;
        SpriteKeyCode[21] = KeyCode.V;
        SpriteKeyCode[22] = KeyCode.W;
        SpriteKeyCode[23] = KeyCode.X;
        SpriteKeyCode[24] = KeyCode.Y;
        SpriteKeyCode[25] = KeyCode.Z;

        Correct.renderer.enabled = false;
        InCorrect.renderer.enabled = false;

        /*
        try
        {
            SpriteKeyCode = (KeyCode[])System.Enum.Parse(typeof(KeyCode), sprites[currentSprite].name);
        }
        catch
        {
           
        }
        */
    
    }
   
    // Update is called once per frame
    void Update () {
       
        if (currentSprite == -1 && _countDown.readyToPlay)
        {
            currentSprite = sprites.Length + 1;
            currentSprite = Random.Range(0, sprites.Length);
            currentKeyCode = currentSprite;
            GetComponent<SpriteRenderer>().sprite = sprites[currentSprite];
        }

        /*
        if (Input.GetKeyDown(this.SpriteKeyCode[0]))
        {
            Debug.Log("Key is pressed: " + this.sprites[currentSprite].name);
        }
        */
        TurnOffSprite();
    }

    void TurnOffSprite()
    {

        if (Input.anyKeyDown && _countDown.readyToPlay)
        {
            if (Input.GetKeyDown(SpriteKeyCode[currentKeyCode]))
            {
                if (InCorrect.renderer.enabled == false)
                {
                    Correct.renderer.enabled = true;
                }
            }
            else
            {
                if(Correct.renderer.enabled == false)
                {
                    InCorrect.renderer.enabled = true;
                }
            }
        }
    }
}

currentSprite = sprites.Length + 1;

Why the plus one arrays start at zero

Also your turn off sprite function never turns off any renderer

   Correct.renderer.enabled=true;
   InCorrect.renderer.enabled = false;

and remove the if statement

I might be misunderstanding what you are trying to do though

thanks for reply,
I have one script which draws random letter(sprite) from my sprites and now I want If script finished work - draws random latters, check if input was pressed etc. to go other object. Sorry for my terrible english.

cuz. When i press correct Input script check others too and I dont know what to do: