Having problems with Random();

Hello I’m making a tile based strategy game, but i’m having problems with the random function.
My new random (r) is appearantly creating problems:

Code:

using UnityEngine;
using System.Collections;

public class TileScript : MonoBehaviour {
    public GameObject grasslandPrefab;
    public GameObject desertPrefab;

    Random r = new Random(); //Making random named "r"
int randomTG = r.Next(1, 2); //making a int (randomTG) and making it generate 1 or 2
// Use this for initialization
void Start () {

    if (randomTG == 1) //if randomTG == 1 a Grassland prefab tile is instantiated.
    {
        Rigidbody instantiatedProjectile = Instantiate(grasslandPrefab
            ,
            transform.position,
            transform.rotation)
            as Rigidbody;
    }else if(randomTG == 2)//if randomTG == 2 a dessert prefab tile is instantiated.
    {
        Rigidbody instantiatedProjectile = Instantiate(desertPrefab
            ,
            transform.position,
            transform.rotation)
            as Rigidbody;
    }
}

// Update is called once per frame
void Update () {

}

}

Console output:

Assets/TileScript.cs(9,10): error CS0236: A field initializer cannot reference the nonstatic field, method, or property `TileScript.r´

I´ve looked at other peoples code and i´ve got no idea whats wrong!

Please help!

Console Output Pic:

Use Unity - Scripting API: Random.Range instead.
For example:

void Start() {
   int type = Random.Range(0, 2); // returns 0 or 1
   if (type == 0) {
      // do stuff
   }
   else if (type == 1) {
      //do stuff
   }
}

I think the c# documentation of that error explains it quite clearly.

Instance fields cannot be used to initialize other instance fields outside a method. If you are trying to initialize a variable outside a method, consider performing the initialization inside the class constructor.

You have to do the assignment in Start or Awake.