It appears that your bod_bedrag column is varchar or some other non numeric type. Hence, MySQL is sorting the column as text rather than numerically. This explains why single digits appear before double digits, etc.

One workaround here is to cast the bod_bedrag column to a numeric type during ordering:

SELECT *
FROM biedingen
WHERE bod_refferentie=$item
ORDER BY CAST(bod_bedrag AS SIGNED) DESC
LIMIT 5

One nifty alternative recognizes that sorting varchar numbers actually works for numbers of the same length. What I mean by this is that if you had 100, 305, 900 and sorted ascending, you would get this order. Here is another option which avoids the cast: