I'm going to repeat this again, since many people struggle with this.
It is _literally impossible_ to achieve the best utilitarian outcome, the most procedurally fair outcome, and a representatively fair outcome.
Anyone designing algorithms will have to make tradeoffs along this frontier.
For a far better argument for the above than I can make in a Hacker News thread, please see these slides from Chris Stucchio:
https://www.chrisstucchio.com/pubs/slides/crunchconf_2018/sl...