Think the best one could expect is a ball-park ... yes,maybe,no ... due to the information not shared so far. Example: are these between 200 and 500 users going to use Moodle asynchronously or synchronously. Brief explanation ... synchronously - the 200-500 users will be required to connect and use the moodle at scheduled times ... like a college class that might meed M-F - 9AM to 10AM every day.
How that affects config ... the DB server would need to be able to allow up to 501 connections - default is 151.
That being said and aside, since you are just now beginning, there is one way you can test with any senario you like ... a test server with the same specs ... no tweaks to php, mySQL, Apache, etc. and you install a 3.2.highest on it. Bullt into Moodle code is a thing call jmeter testing. Should not be used on a production server. Via Jmeter setup one can choose the number of students desired and via a jmeter test have X number of students run through a course that Jmeter builds for you X number of times. A stress test. You could begin that test with your 500 number and see for yourself. ;) Again ... do not use on a server you plan to use for production.
https://docs.moodle.org/dev/JMeter
This does not require the purchase of another physical machine, BTW ... one could setup a Google Compute Engine with the specs you've mentioned ... setup a Moodle 3.2 on it ... run JMeter testing there. When done, simply remove the GCE instance. GCE is based upon usage and one gets a $200-300 'credit' to begin with. You could do your testing for free.
https://cloud.google.com/compute/
'spirit of sharing', Ken