If you are unwilling to correct the DB design, then the best you can do is something ugly like this:
If doing this from PHP, for example, you'd code something like
SELECT * FROM profiles
WHERE CONCAT(',', courseareas,',') LIKE '%,16,%'
The reason you need to add the commas to the front and back of both courseareas and the value are looking for is to avoid "false positives".
$sql = "SELECT * FROM profiles WHERE CONCAT(',', courseareas,',') LIKE '%," . $areanum . "16,%'";
Suppose, for example, the areanumber you are looking for is 1.
If you didn't do as I show, you'd code something such as
But then the '%1%' would match 16 and 21 and 17 and...
SELECT * FROM profiles WHERE courseareas LIKE '%1%'
With the commas, ,16, matches only ,16,
See why you should change your DB design?
And this is just the tip of the iceberg.
Using YOUR db design, how would you answer a question such as this:
How many students are there that have two or more courseareas in common?
You can't do it with your design. Not in any even close to efficient way.
How many students have exactly two courseareas in common and have at least one of them in the range of 21 through 30?
Whereas with a NORMALIZED design both queries are trivial.