Randomly display post based on meta value. (Kind of Priority/Weight)

hell yes you can do this with a standard WP_Query. As far as i understand, all you need is a random number between 1 and 10 (or so) and then fetch a random post with that specific number > meta_query. So all you need is a logic, that creates your random number, preferably the lower, the more often..

floor(abs(random() - random()) * (1 + max - min) + min)

credits