Select evenly spaced subset from array
Your math was wrong, but don't worry it was a simple fix. And I have provided an easier way to do it on top of that.

The key to this review is that we're going to take advantage of the .Net libraries, which you should remember can practically do anything you want them to. That is IF you know how to use them.

in C#.Net

double percent = 40d / 60d;
var newValues = myList.Where((value, index) =&gt; index % (1 / percent) &lt; percent).ToList();


in VB.Net 

Dim percent As Double = 40.0 / 60.0
Dim newValues = myList.Where(Function(value, index) index Mod (1 / percent) &lt; percent).ToList()


They are practically the same. But now let me explain how this works a bit now.  

List&lt;T&gt; in .Net inherits from the IEnumerable&lt;T&gt; class which has the Where()  overloaded extension method from the Linq library. Using linq in combination with a lambda expression Function(value, index) index Mod (1 / percent) &lt; percent I was able to specify to the Where method exactly what values to give back. I specifically did this with some math involving the index of the item that was being iterated over internally. Suffice to say, the Where method loops over given list, and returns all values which meet the criteria given in that lambda expression. At the end I convert the IEnumeral&lt;double&gt; to a List&lt;double&gt; to work like the data you had before.