Which electrical outlets can I use?
JavaScript (ES10), 159 bytes
Same logic as my original answer, but with the data stored as a string with several unprintable characters.

(v,r,g)=&gt;[..."&#15;_&#19;&#21;Î&#2;&#4;^&#18;&#20;&#24;~248Õ&#25;S&#21;&#25;c&#158;&#20;&#24;&#26;"].flatMap(x=&gt;(x=x.charCodeAt(),n+=x&gt;&gt;6,V=(120&lt;&lt;x/16%4)%683,R=~(x/2&amp;7)*10%65,-R&lt;r|x&amp;g|(V-v)**2&gt;V*V/100?[]:n+[R]),n=1)

Try it online!

JavaScript (ES10),  200 190 186  181 bytes
Expects (voltage, current, ground), where ground is a Boolean value. Returns an array of strings in NN-nn format.
(v,r,g)=&gt;&quot;0F5F1315CE02045E1214187E323438D519531519639E14181A&quot;.match(/../g).flatMap(x=&gt;(x='0x'+x,n+=x&gt;&gt;6,V=(120&lt;&lt;x/16%4)%683,R=~(x/2&amp;7)*10%65,-R&lt;r|x&amp;g|(V-v)**2&gt;V*V/100?[]:n+[R]),n=1)

Try it online!
How?
Encoding format
Each outlet is encoded as a byte x whose bit-mask is DDVVRRRG with:

DD = difference between the leading outlet ID and the previous leading outlet ID
VV = voltage: [120,240,480,277] mapped to [0,1,2,3]
RRR = current rating: [20,30,50,60,15] mapped to [1,2,4,5,7]
G = flag set if there's no ground

For instance, the outlet 10-30 is encoded as 0xD5 = 0b11010101:
11 01 010 1
 |  |   | |
 |  |   | +--&gt; no ground
 |  |   +----&gt; rating 2 (30A)
 |  +--------&gt; voltage 1 (240V)
 +-----------&gt; previous ID + 3 (7 + 3 = 10)

The whole data is stored as a single string of two-nibble hexadecimal values, which are split with a match().
Decoding
The leading ID is updated with:
n += x &gt;&gt; 6

Because \$277\$ is \$960\bmod683\$, the voltage is decoded with:
V = (120 &lt;&lt; x / 16 % 4) % 683

Because \$15\$ is \$80\bmod65\$, the current rating is decoded with:
R = -~(x / 2 &amp; 7) * 10 % 65