Bonjour,
Si l'option aléatoire est bien désactivée, alors c'est en effet l'ordre du champ sélectionné qui sera choisi.
Se pourait-il que vous ayez du cache sur votre site qui vous empêche de voir le bon ordre ? Essayez de vider le cache.
Sinon, avez vous mis des chiffres dans le champ personnalisé ?
L'ordre ne serait-il pas :
1
10
11
12
...
2
20
21
...
dans votre listing sur le frontend ?
Car sur un champ personnalisé, le type en base de données est par défaut "longtext", donc MySQL va effectué un classement alphanumérique, caractère / chiffre par caractère / chiffre, et non un classement mathématique où chaque nombre est pris en compte dans son ensemble.
Si c'est le problème, alors vous voulez allez en base de données via PHPMyAdmin et changer le type du champ en "integer".
Alternativement, vous pouvez utiliser un classement avec des zéros:
0001
0002
0003
0004
0005
0006
...
Mais bon, cela va vous faire revoir chaque produit. Il sera plus simple de changer le type du champ dans la BDD.