We have to assume that the Dwarven Government wants to rent all of its rooms so it can make back some money. You'd think they'd be annoyed that a room is sitting vacant when they could possibly be making some money off of it, even if it's not as much as they'd really like.
How about this system: The most expensive, highest-quality room's rent is lowered slowly one copper piece at a time until there's a dwarf who can afford to rent it (probably the wealthiest dwarf). Then the second most expensive, high-quality room is subjected to the same procedure until the second most wealthy dwarf can afford it. And so on and so forth.
Until finally, assuming you have enough housing, your poorest dwarfs are in your most humble apartments paying as much as they can possibly afford to pay, and your wealthiest dwarfs are in the most expensive apartments.
Potential problems: dwarfs' wealth is fluxuating, as is the quality of the rooms. Perhaps update the room assignments every season? Every year?
Second solution idea:
Don't define bedrooms off of furniture. Any space can be defined as a bedroom even if it's totally empty, doesn't have walls or doors, etc. Then the dwarf who ends up renting the EMPTY apartment is in charge of purchasing his own furniture. These items don't change the cost of rent, but do cost his own money and he might have to save up for them. If he ever chooses to rent a larger apartment, he'll have to move all his stuff (perhaps he'll invite his friend with the large flatbed mule to help). If times ever get desperate, he can sell some of his stuff to be able to afford his rent.
To solve the "all my beds are masterwork and nobody can afford them" problem, you need to assume all dwarfs can go outside and construct a straw sleeping mat for free. If the barracks or their bedroom doesn't have a bed free, they'll just pull out their straw mat and use it instead.