As I mentioned in the comment, the numbers on the cards don't actually matter. Once we reveal 10 cards, as you mentioned the suit that is most likely to be the one with 12 cards in the deck is the one with most cards. However, if we see two or more suits with the same number of cards, we cannot possibly pick one over the other. I'll give you three arguments.
First attempt: let's look at it this way. We start with 13 cards, then we pick $n$ out of those 13 ($n$ being 8, 10, or 12 depending on the suit), and then we pick $k$ out of those $n$. This is exactly the same as picking $k$ cards out of 13 first, and then picking the remaining $n-k$ from the rest of the deck. But if $k$ is the same for two or more suits, each set of $k$ cards is equally likely, so you cannot deduce anything from $n$ based on this set.
Second attempt: to get a 12-10-10-8 distribution, I can pick cards from the top of the deck until I get to a total of 40 (including the original 10) distributed 12-10-10-8, discarding cards that would lead to an incorrect distribution (eg. the 11th card in the 2nd suit, or the 9th card in the 4th suit, etc).
Since I must keep the first 10 cards (I can't get 13 in a suit, 11 in two suits, or 9 in 4 suits with just 10 cards), this is functionally equivalent to revealing 10 cards from the top, then secretly picking cards from the top of the deck until I get the desired distribution. But the first 10 cards, which are the ones forming your hand, have been picked uniformly at random from the whole deck, so you cannot deduce anything about the remaining 30 cards based on the 10 you see.
Third attempt: let's pick any ordering on the suits (say: hearts, diamonds, clubs, spades). If you draw a hand with two or more suits of the same length, I can just take the cards from the first two of those suits from your hand, go through the deck and the discarded cards, and replace them with the same cards of the other suit, effectively swapping the numbers of the cards of those two suits. This procedure is bijective: any such hand is paired to exactly one other (it may be itself, if you have two suits with the exact same cards), so the average minimum/maximum of these suits must be the same, since both hands will appear among the possible choices.
I prepared a Python notebook with a numerical simulation (1.000.000 draws). The dictionary `average_minimum` contains the average of the minimum value of the cards in your hand of any given suit, divided according to the number of cards in that suit appearing in that hand. As you can see, it pretty much only depends on the number of cards, and it does not depend on the suit at all (in the simulation, hearts has always 12 cards, spades has always 8): you always get the expected value of the minimum of $k$ numbers picked uniformly at random among 13, regardless of the composition of the deck. Anyway, the results are the following.
{
"H": {
"1": 7.000337533753376,
"2": 4.669335389156632,
"3": 3.4945357239473163,
"4": 2.800859057223414,
"5": 2.344628538567538,
"6": 2.00013397043719,
"7": 1.7781381771002271,
"8": 1.6073059360730593,
"9": 1.4285714285714286,
"10": ""
},
"D": {
"1": 7.007458565176339,
"2": 4.654482521681335,
"3": 3.5027843768804545,
"4": 2.7908759198483395,
"5": 2.3266618003720363,
"6": 2.009052416411155,
"7": 1.813167259786477,
"8": 1.7058823529411764,
"9": "",
"10": ""
},
"C": {
"1": 6.995395779068595,
"2": 4.6652770808404425,
"3": 3.498925888007774,
"4": 2.804274305272594,
"5": 2.3216148624508754,
"6": 1.9708265802269043,
"7": 1.7585644371941271,
"8": 1.3214285714285714,
"9": "",
"10": ""
},
"S": {
"1": 7.003836888673414,
"2": 4.658564901290267,
"3": 3.5044268469164876,
"4": 2.7953733333333335,
"5": 2.353311584856991,
"6": 2.049044056525353,
"7": 1.9137931034482758,
"8": 1.0,
"9": "",
"10": ""
}
}
EDIT: I'm having trouble attaching a file for some reason, I'm sending you the code as text.
import random
cards = list(range(1,14))
suits = ['H', 'D', 'C', 'S']
minima = {x : {y : [] for y in range(1,11)} for x in suits}
def avg(l):
return sum(l) / len(l)
hands = []
for _ in range(1000000):
hearts = [(x, 'H') for x in random.sample(cards, 12)]
diamonds = [(x, 'D') for x in random.sample(cards, 10)]
clubs = [(x, 'C') for x in random.sample(cards, 10)]
spades = [(x, 'S') for x in random.sample(cards, 8)]
deck = hearts + diamonds + clubs + spades
hands += [random.sample(deck, 10)]
for h in hands:
for suit in suits:
if len([x for x in h if x[1] == suit]) > 0:
minima[suit][len([x for x in h if x[1] == suit])] += [min(x[0] for x in h if x[1] == suit)]
average_minimum = {x : {y : avg(minima[x][y]) if minima[x][y] else '' for y in range(1,11)} for x in suits}
average_minimum