Randomクラスには、乱数を得るためのメソッドがいくつか用意されています。 求める乱数の型・値域によって、次のメソッドを使い分けることができます。 いずれも得られる乱数の値域は半開区間(n以上m未満)となっています。

NextDoubleメソッド
0.0以上1.0未満の乱数を実数(Double)で取得する。 [0.0, 1.0)
Nextメソッド
乱数を整数(Int32)で取得する。 以下のオーバーロードが用意されている。
Next()
0以上の乱数を取得する。 [0, Int32.MaxValue)
Next(max)
0以上max未満の乱数を取得する。 [0, max)
Next(min, max)
min以上max未満の乱数を取得する。 [min, max)

なお、NextDoubleメソッドには任意の値域を指定するバージョンは用意されていないため、NextDoubleの戻り値を加減乗除して求める値域に変換する必要があります。

Random.NextDoubleメソッドで実数の乱数を生成する
using System;

class Sample {
  static void Main()
  {
    var rand = new Random();

    for (var i = 0; i < 20; i++) {
      // 0以上1未満の乱数を生成したのち、値域を0以上2未満に変換する
      Console.Write("{0:F1}, ", 2.0 * rand.NextDouble());
    }
    Console.WriteLine();

    for (var i = 0; i < 20; i++) {
      // 0以上1未満の乱数を生成したのち、値域を-1以上+1未満に変換する
      Console.Write("{0:F1}, ", 2.0 * rand.NextDouble() - 1.0);
    }
    Console.WriteLine();
  }
}
実行結果の一例
1.8, 2.0, 1.7, 1.5, 0.3, 0.3, 0.6, 0.0, 0.1, 1.3, 1.7, 0.1, 1.1, 0.5, 2.0, 0.2, 1.1, 1.1, 1.7, 1.4, 
0.3, -0.2, 0.7, -0.9, -0.8, -0.1, 0.8, -0.3, -0.0, -0.3, 0.6, -0.8, 0.5, 0.5, 0.3, 0.7, -0.3, 0.9, 0.8, -0.1,