user57419: Can I create a wallet and restore it on something like a Ledger S using any 24 words that I choose from the list of accepted words?
Is there any disadvantage to creating a wallet this way instead of having say Ledger generate 24 words for me?

user51948: If you choose the words yourself, you're more likely to be biased towards some word selections based on position in the list, words you like and dislike, etc. Ledger is designed to pick the words as securely as possible. Also, some words are used as checksum I believe, so if you just picked them randomly the checksum would be invalid and you'd probably get a warning. But yes, it would still probably work.

user10377: The short answer is NO because of a checksum. You are playing with fire if you are arbitrarily using the list of words from https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md#wordlists.  
However, you can synthesize a list of from a from triplets of 3, 6, 9, 12, 15, 18, 21, and 24 words using 32, 64, 96, 128, 160, 192, 224, 256 binary seeds. See the three working examples below that use Bitcoin-Explorer (bx) command line interface.
24 Word Example:
% echo -n "This is a crappy brainwallet!" | bx base16-encode | bx sha256 | bx mnemonic-new
swear favorite title elegant eye trim situate velvet own atom change same net winner seven drum thunder subway convince arrive bid notice during vacant
18 Word Example:
% echo -n "This is a crappy brainwallet!" | bx base16-encode | bx sha256 | cut -c 1-48 | bx mnemonic-new
swear favorite title elegant eye trim situate velvet own atom change same net winner seven drum thunder surround
12 Word Example:
% echo -n "This is a crappy brainwallet!" | bx base16-encode | bx sha256 | cut -c 1-32 | bx mnemonic-new
swear favorite title elegant eye trim situate velvet own atom change sail
From the working examples above the checksum causes the last word of the triplet set of words to vary.

57419: <p>Can I create a wallet and restore it on something like a Ledger S using any 24 words that I choose from the list of accepted words?</p>

<p>Is there any disadvantage to creating a wallet this way instead of having say Ledger generate 24 words for me?</p>
 51948: <p>If you choose the words yourself, you're more likely to be biased towards some word selections based on position in the list, words you like and dislike, etc. Ledger is designed to pick the words as securely as possible. Also, some words are used as checksum I believe, so if you just picked them randomly the checksum would be invalid and you'd probably get a warning. But yes, it would still probably work.</p>
 10377: <p>The short answer is NO because of a checksum. You are playing with fire if you are arbitrarily using the list of words from <a href="https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md#wordlists" rel="nofollow noreferrer">https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md#wordlists</a>.  </p>

<p>However, you can synthesize a list of from a from triplets of 3, 6, 9, 12, 15, 18, 21, and 24 words using 32, 64, 96, 128, 160, 192, 224, 256 binary seeds. See the three working examples below that use Bitcoin-Explorer (bx) command line interface.</p>

<p><strong><em>24 Word Example:</em></strong></p>

<p>% echo -n "This is a crappy brainwallet!" | bx base16-encode | bx sha256 | bx mnemonic-new</p>

<p><code>swear favorite title elegant eye trim situate velvet own atom change same net winner seven drum thunder subway convince arrive bid notice during vacant</code></p>

<p><strong><em>18 Word Example:</em></strong></p>

<p>% echo -n "This is a crappy brainwallet!" | bx base16-encode | bx sha256 | cut -c 1-48 | bx mnemonic-new</p>

<p><code>swear favorite title elegant eye trim situate velvet own atom change same net winner seven drum thunder surround</code></p>

<p><strong><em>12 Word Example:</em></strong></p>

<p>% echo -n "This is a crappy brainwallet!" | bx base16-encode | bx sha256 | cut -c 1-32 | bx mnemonic-new</p>

<p><code>swear favorite title elegant eye trim situate velvet own atom change sail</code></p>

<p>From the working examples above the checksum causes the last word of the triplet set of words to vary.</p>
