How can I find out which devices allow installations of up to date custom ROMs easily? When I purchase an Android phone, I prefer to install a custom ROM on it, instead of using the manufacturer's version of Android. Is there a way for me to quickly figure out if a given phone supports custom ROMs or not? Ideally I want a way to list down every phone that supports custom ROMs by date and price, so that I could quickly figure out which are the latest/cheapest phones that fulfill my requirements.
As Irfan and Andy have already said. A custom ROM is just a ROM that is from a third party and has now been developed to boot on your device. 

A quick look is every android can boot a custom ROM but getting a ROM that is bug free, that is, if it can at all boot on your device.

Booting a ROM on a phone requires an appropriate boot image containing a kernel that can work on your phone and correspond to hardware files and software apps in the system. 

A few years ago before the dawn of android 8, porting a ROM used to need one to port a boot image of the custom ROM by the kernel of the stock boot image, considering the system space and partitions to write boot and system images to respectively, and also maintaining vendor data so as to support the hardware devices like cameras and speakers a phone has. 

This made Google to think about a way to make any theoretical system to be compatible with the residing hardware. This made google to isolate vendor data to an independent partition as from Android 8 Go and above.

This made the deletion of or replacement of system files not to render phone's hardware unusable. They introduced Project Treble - a project aimed at developing universal ROMs for Project Treble supported devices.

This only requires flashing of the system partition without touching any other partition. This means a kind of universal boot image is already existing in Project Treble devices and all Treble ROMs have a universal  Build Properties file. 

One has to unlock the bootloader of the device and then flash a sparse system image from fastboot and the phone seamlessly works

So my recommendation is any device running Android 8 Go and above. All devices succeeding Android 8 have native support for Project Treble ROMs - the easiest way to run custom ROMs on phone

Don't even think about manual porting it can be mostly disappointing. Read about Project Treble and you'll be amazed