title: How should I generate an initialization vector?
body: <p>I'm sure there's not one answer to this question, but just trying to find out a general approach.</p>
  
  <p>Using Java 1.4.2, I need to generate a key and IV for use in a symmetric algorithm.  These values will be pre-shared with the recipient through a secure channel.</p>
  
  <p>The key I can generate with KeyGenerator.keyGenerate().  But unless I'm missing it, there's no function for generating a random IV.</p>
  
  <p>Should I do something completely arbitrary like pull 16 random bytes from memory?  Or is there a preferred way of generating sufficiently random initialization vectors?</p>