float, doubleの場合、NaN(非数)は-∞(負の無限大)や他の数よりも小さいと扱われる点に注意が必要です。

浮動小数点型の値のソート順序
Imports System

Class Sample
  Shared Sub Main()
    Dim doubleArray As Double() = New Double() { _
      0.0, 1.0, -1.0, 0.01, -0.01, _
      double.MaxValue, double.MinValue, _
      double.PositiveInfinity, double.NegativeInfinity, double.NaN _
    }

    Array.Sort(doubleArray)

    Console.Write("Double: ")
    Console.WriteLine(string.Join(", ", doubleArray))
  End Sub
End Class
実行結果
double: NaN, -Infinity, -1.79769313486232E+308, -1, -0.01, 0, 0.01, 1, 1.79769313486232E+308, Infinity