Is array constant or dynamic?
If it's constant - there might be a way to find min at translate time. If not - you've got to use usual way, that is a counter for index and a comparator. And it will be O(N).
Are you trying to do a vhdl function. On O recursive algo array_min(array[m..n]) = min(array[m],array_min[m+1,n]) would work as a vhdl function. You could do something similar in RTL if you wanted to shift through an array for N clock cycles and keep the min. Or for a fixed-length array you could call the recursive function and get parallel logic in one clock cycle (though the combinatorial logic chain would get huge fast.)